概要
str_replace()
は文字列中の対象文字列を指定した文字列に置き換える。
str_replace($search, $replace, $string);
$search
は置き換えられる文字列、$replace
は置き換える文字列、$string
は対象文字列。
基本形
文字列の変換
以下の例は、対象文字列中の’ab’を’AB’に変換している。
1 2 3 4 5 6 7 8 9 10 11 |
<pre> <?php $s = 'abcdabcdab'; echo $s, "\n"; // abcdabcdab echo str_replace('ab', 'AB', $s); // ABcdABcdAB ?> </pre> |
半角スペースの削除
以下の例では、文字列中の半角スペースを全て削除している。trimと異なり、文字列中のすべてのスペースを削除。
1 2 3 4 5 6 7 8 9 10 11 |
<pre> <?php $s = ' a b c '; echo '|', $s, '|', "\n"; // | a b c | echo '|', str_replace(' ', '', $s), '|'; // |abc| ?> </pre> |
全角スペースの削除
全角スペースを削除する例。
1 2 3 4 5 6 7 8 9 10 11 |
<pre> <?php $s = ' a b c '; echo '|', $s, '|', "\n"; // | a b c | echo '|', str_replace(' ', '', $s), '|'; // |abc| ?> </pre> |
全角文字の置換
全角文字も問題なく検索・置換できる。
1 2 3 4 5 6 7 8 9 10 11 |
<pre> <?php $s = "いろはにいろはにいろ"; echo $s, "\n"; // いろはにいろはにいろ echo str_replace('いろ', 'ほへ', $s); // ほへはにほへはにほへ ?> </pre> |
複数文字列の置換
複数の文字列の同一文字列への置換
第1引数を文字列の配列にすると、各要素文字列の何れかに該当すれば第2引数に置き換えられる。
1 2 3 4 5 6 7 8 9 10 |
<pre> <?php $s = "ABCDABCDABCD"; echo $s, "\n"; // ABCDABCDABCD echo str_replace(['A', 'C'], '-', $s); //-B-D-B-D-B-D ?> </pre> |
これを利用して、文字列が半角スペースと全角スペースだけで構成されていないかチェックができる。
if (str_replace([' ', ' '], "") === '') {}
複数の文字列セットの置換
第1引数と第2引数を配列にすると、対応する要素によって置換される。
1 2 3 4 5 6 7 8 9 10 11 12 |
<pre> <?php $s = "いろはにほへといろはにほへと"; echo $s, "\n"; // いろはにほへといろはにほへと $searches = ['いろは', 'にほへと']; $replaces = ['色は', '匂へど']; echo str_replace($searches, $replaces, $s); // 色は匂へど色は匂へど ?> </pre> |