昨日、WordPressテーマ情報を取得するAPIを書いていたとき、style.css 内の英語の内容を置き換えるため、文字列置換に関する str_replace() 関数を使いました。最初は、置換するために str_replace() 関数を十数個も連続して使っていました。

その後、ある達人から、str_replace() 関数の引数には配列を設定でき、順番に一括置換できると教えてもらいました。試してみたところ、本当に str_replace() 関数を1つ使うだけでできたので、ここで私の経験を共有します。

str_replace()

ここでは主に str_replace() 関数の4つのケースについて説明します。

置換される値にのみ配列を使用する

<?php
echo str_replace(array('w','m'),'x','www.ikxin.com');
?>

出力: xxx.ikxin.cox

関数は配列内の各文字列を順番に置換し、置換後の文字列を返していることが分かります。

置換する値にのみ配列を使用する

<?php
echo str_replace('i',array('w','m'),"www.ikxin.com");
?>

出力: www.ArraykxArrayn.com

この置換は比較的面白いものです。2番目の引数にのみ配列を使用すると、関数はそれを文字列 Array として扱い、置換される値をすべて Array に置き換えます。

置換されるパラメータにのみ配列を使用する

<?php
echo str_replace('w','n',array('www.ikxin.com','www.baidu.com'));
?>

この文の実行結果は配列を返します。つまり、渡された2つの文字列をそれぞれ置換した結果です。

置換する値と置換される値に配列を使用する

<?php
echo str_replace(array("m","w"),array("h","n"),"www.ikxin.com");
?>

出力: nnn.ikxin.coh

最初の2つの引数に配列を使用すると、関数は配列の各要素の文字列を置換します。つまり、置換される値の1番目の項目は置換する値の1番目の項目に置き換えられ、以下同様です。