【PHP入門2021】文字列を部分置換するstr_replace関数 ~配列の中身も置換可能!

PHP

str_replace関数の基本構文

str_replace関数はある対象文字列の中の一致した文字列Aを文字列Bに置換します。

str_replace ( array|string $search , array|string $replace , string|array $subject , int &$count = null )

置換元の文字列Aが複数あっても全て変換されます。
日本語などのマルチバイト文字列も変換可能です。

また配列の中身を置換したり、置換元と置換先のを配列で複数指定することもできます。

パラメータ

「ある対象文字列」の中の「文字列A」を全て「文字列B」に置換するとします

名前 初期値 説明
array|string $search 置換元の文字列A(配列も可)
array|string $replace 置換先の文字列B(配列も可)
string|array $subject 対象の文字列。この文字列にA→Bを適用する。(配列も可)
int&$count null 変換した個数が格納される

返り値(戻り値)

説明
string|array 置換後の対象文字列、配列

str_replace関数の使い方

文字列を部分置換するサンプルソースコード

$str = "これはペンです";
echo $str . PHP_EOL; //これはペンです
$str = str_replace("ペン", "アップル", $str); //ペン→アップル変換
echo $str . PHP_EOL; //これはアップルです
出力
これはペンです
これはアップルです

改行コードをhtmlタグに変換させるサンプルソースコード

改行などのエスケープシーケンスも置換できます。

$str = "これはペンです。\r\nこれはアップルです。";
$str = str_replace("\r\n", "<br/>", $str);
echo $str . PHP_EOL;
出力
これはペンです。
これはアップルです。
これはペンです。<br/>これはアップルです。

置換した文字列の数を確認するサンプルソースコード

$str = "これはペンです";
echo $str . PHP_EOL;
$str = str_replace("ペン", "アップル", $str, $count);
echo $str . PHP_EOL;
echo "置換数: " . $count . PHP_EOL;
出力
これはペンです
これはアップルです
置換数: 1

置換元A、置換先Bを配列で指定するサンプルソースコード

原則、配列AとBは同じ数の配列でなくてはいけません

//これ→それ、ペン→パイナップルを配列指定で変換
$str = "これはペンです";
$array_from = array("これ", "ペン");
$array_to = array("それ", "パイナップル");
$str = str_replace($array_from, $array_to, $str);
echo $str . PHP_EOL;
出力
これはペンです
それはパイナップルです

配列の置換元A、置換先BのBが少なかったら?のサンプルソースコード

配列Aよりも配列Bの要素数が少ない場合は空に変換されます。

//配列指定でtoを省略すると空になる
$str = "これはペンです";
$array_from = array("これ", "ペン");
$array_to = array();
$str = str_replace($array_from, $array_to, $str);
echo $str . PHP_EOL;
出力
これはペンです
はです

配列の中身を置換するサンプルソースコード

//配列の中身を変換
$array = array("これはペンです", "それもペンです");
print_r($array);
$array_from = array("ペン");
$array_to = array("アップル");
$array = str_replace($array_from, $array_to, $array);
print_r($array);
Array
(
    [0] => これはペンです
    [1] => それもペンです
)
Array
(
    [0] => これはアップルです
    [1] => それもアップルです
)

関連する関数

コメント

タイトルとURLをコピーしました