PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのstrtr()関数の使い方をわかりやすく解説

PHPのstrtr()関数は、文字列の中の特定の文字や部分文字列を、別の文字・文字列に変換(置換)するために使用されます。単純な一対一の文字置換から、連想配列を使った複数の置換ルールの指定まで、柔軟に対応できる便利な関数です。

構文

strtr(string $str, string $from, string $to)
または
strtr(string $str, array $replace_pairs)

strtr()関数には2つの使い方があります。1つ目は「変換元の文字」と「変換先の文字」を個別に指定する方法、2つ目は「変換元 => 変換先」のペアを持つ連想配列を渡す方法です。

パラメータ

  • str − 変換対象となる元の文字列を指定します。

  • from − 変換前の文字を指定します。配列を使用しない場合は必須のパラメータです。

  • to − 変換後の文字を指定します。配列を使用しない場合は必須のパラメータです。fromtoは同じ長さである必要があり、対応する位置の文字同士が置き換えられます。

  • arr − 「変換元の文字列をキー」「変換先の文字列を値」とする連想配列を指定します。この形式では、より長いキーから優先的にマッチが試みられます。

戻り値

strtr()関数は、変換処理が適用された文字列を返します。元の文字列自体は変更されません。

使用例

以下は、3つの引数を使用して文字を置き換える基本的な例です。

<?php
   $mystr = "kom lan";
   $str1 = "koml";
   $str2 = "tomh";
   echo strtr($mystr, $str1, $str2);
?>

この例では、「$mystr」内の各文字が「$str1」の同じ位置にある文字から「$str2」の同じ位置にある文字へと置き換えられます。具体的には「k」→「t」、「l」→「h」が適用されます。

出力結果

tom han

連想配列を使った例

連想配列を渡すことで、複数の文字列置換を一度に行うこともできます。

<?php
   $text = "hello world";
   $pairs = ["hello" => "こんにちは", "world" => "世界"];
   echo strtr($text, $pairs);
?>

この場合の出力は「こんにちは 世界」となります。配列形式では、最も長いキーから順に照合されるため、意図しない部分的な置換を防ぎたい場合に特に有効です。

まとめ

strtr()関数は、文字単位の置換にも文字列単位の置換にも使える柔軟な関数です。str_replace()との大きな違いは、strtr()は一度置き換えた部分に対して再度置換を行わない点です。そのため、置換結果がさらに別の置換ルールに影響されることを防ぎたいケースで活躍します。

  1. PHPのstrstr()関数とは?使い方と実例をわかりやすく解説

    PHPのstrstr()関数は、指定した検索文字列が対象の文字列内で最初に現れる位置を見つけ、その位置以降の文字列を返すために使用される組み込み関数です。 注意: strstr()関数は大文字と小文字を区別します。大文字・小文字を区別せずに検索したい場合は、stristr()関数を使用してください。 構文 strstr(str, search, before) パラメータ str − 検索対象となる元の文字列を指定します。 search − 検索する文字列を指定します。 before − 省略可能なブール値で、デフォルト値は「false」です。「true」に設定すると、searchパラメ

  2. 【PHP入門】filectime()関数の使い方 – ファイルの最終変更時刻を取得する方法

    PHPのfilectime()関数は、ファイルの最終変更時刻を取得するための関数です。取得できる時刻はUNIXタイムスタンプ形式で返され、処理に失敗した場合にはfalseを返します。なお、filectime()が返す「変更時刻」は、ファイルの中身だけでなく、パーミッションや所有者などファイルのメタ情報(inode)が変更された時刻も指します。単純にファイル内容の更新日時を知りたい場合はfilemtime()関数を使うとよいでしょう。構文filectime ( file_path );パラメータfile_path − 最終変更時刻を調べたいファイルへのパスを指定します。戻り値filectime(