PHPで文字列置換 | クズリーマンのカス備忘録

PHPで文字列置換

php-logo php
スポンサーリンク

単純な置換なら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()

コメント

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