Type |
---|
文字列の部分置換の機能を持ち、名前や機能の似ている4つの関数 「preg_replace」「str_replace」「substr_replace」「strtr」を実行し、 機能の比較を行うことができます
mixed preg_replace(mixed $pattern, mixed $replacement, mixed $subject[, int $limit = -1[, int &$count]])
subject に関して pattern を用いて検索を行い、 replacement に置換します。
※この関数は引数$search, $replace, $subjectで配列が使えます。配列の場合連続的に処理をします。 しかしこのページでは文字列のみを対象としています。
PHP: preg_replace - Manualmixed str_replace(mixed $search, mixed $replace, mixed $subject[, int &$count])
str_replace()は、subject の中の search を全て replace に置換します。 (正規表現のような) 技巧的な置換ルールを必要としない場合、 preg_replace() の代わりにこの関数を常用するべきです。
※この関数は引数$search, $replace, $subjectで配列が使えます。配列の場合連続的に処理をします。 しかしこのページでは文字列のみを対象としています。
PHP: str_replace - Manualmixed substr_replace(mixed $string, mixed $replacement, mixed $start[, mixed $length])
substr_replace()は、文字列 stringの start および (オプションの) length パラメータで区切られた部分を replacement で指定した文字列に置換します。
※リファレンスでは、文字列全体を置き換える例や、切り取らずに先頭に文字列を 付加する例が提示されていますが、わざわざ関数を使う必要がなく意味がありません。 また不要な文字列が現れる個所が数値で指定できるケースが少ないように感じます。 個人的に、文字列変換という意味では他の関数に比べて有用性が低いと感じます。 しかし、第一引数にはバイナリも指定可能です。 文字列変換ではなく、バイナリファイルの変換時に効果を発揮する関数ではないかと思います。
PHP: substr_replace - Manualstring strtr(string $str, string $from, string $to)
文字の変換あるいは部分文字列の置換を行います。
引数を三つ渡した場合、この関数は str のコピーを返します。 その際に、文字列中に from の各文字 (シングルバイト) があれば to の対応する文字に変換します。 つまり、すべての $from[$n] が $to[$n] に置換されることになります。 ここで $n は、どちらの引数でも共通に有効なオフセットです。
from と to の長さが異なる場合、長い方の余分な文字は無視されます。 返される文字列の長さは、もとの str と同じになります。
引数を二つだけ渡す場合は、二番目の引数を array('from' => 'to', ...) 形式の配列にしなければなりません。 返される値は文字列で、もとの文字列中にある配列のキーと同じ部分を対応する値で置換したものとなります。 一番長いキーから順に調べます。一度部分文字列の置換を行うと、 置換後の文字列がさらに置換の対象となることはありません。
この場合は、配列のキーと値は任意の長さにすることができますが、キーを空にすることだけはできません。 さらに、返される文字列の長さはもとの str とは異なる可能性があります。 しかし、この関数が最も効率的に働くのは、すべてのキーが同じ長さである場合です。
このページに関するちょっとした感想または、要望、バグ・間違いの指摘などは、下記の送信欄からお送りください。 質問・その他お問合せなど、返信をご希望の方は「こちらのページ」からメッセージをお送りください。
「このページはお役に立ちましたか?」のアンケートと自由メッセージのどちらか一方でかまいません (両方だとよりうれしいです)。お気軽にご利用ください (感想・どんな用途で使用したかなどをいただけると作成・運営の励みになります!)。