単純な置換ならstr_replace。日本語にも対応している。しかも高速
PHPの文字列置換をする関数、たくさんあって、どれを選べばいいか迷うけど、
正規表現とか使わず単純な置換なら
str_replace
がシンプル。
日本語などのマルチバイト文字にも対応しているらひー。
日本語(マルチバイト文字)にも対応しています。
参考
使いかた
str_replace(検索ワード, 置換後の文字列, 文字列全体);
abc_100
という文字列を、
abc_200
という文字列に置換する例:
$string = "abc_100";
$newString = str_replace("100", "200", $string);
echo $newString;
正規表現で置換 preg_replace()
正規表現が使えるので、まぁほぼ完璧に網羅できるんじゃないでしょうか。
ChatGPT3.5先生は、これが最も高速だとおっしゃってました。
abc_100
という文字列を、
abc_200
という文字列に置換する例:
$string = "abc_100";
$pattern = '/(\d+)/';
$replacement = '200';
$newString = preg_replace($pattern, $replacement, $string);
echo $newString;
指定した位置にある文字列を置換 substr_replace()
abc_100
という文字列を、
abc_200
という文字列に置換する例:
$string = "abc_100";
$newString = substr_replace($string, "200", 4, 3);
echo $newString;
なんか昔ながらのやり方って感じですね。Excel関数とかバッチファイルでよく使ってたようなやり方だなー。
僕は自分で使うことはほぼないでしょうな。
処理速度最速? strtr()
一部にはこれが最速だとする記事もありましたが、
一番遅いとする記事もありました(R)
多分、自分では使わんかなー。
abc_100
という文字列を、
abc_200
という文字列に置換する例:
$string = "abc_100";
$translation = array("100" => "200");
$newString = strtr($string, $translation);
echo $newString;
まとめ:2パターンだけ使い分ければいい
以下の2パターンで使い分ければいいと思いました。
- 単純な置換の場合:str_replace()
- 複雑な置換の場合:preg_replace()
コメント