PHPで、文字列から特定文字を別の文字に一括置換する方法を紹介します。
お急ぎの人のためのサンプルコード
文字列の置換には str_replace
関数を用いる。
PHPでは、マルチバイト文字を扱う場合は md_*
から始まる関数をよく用いるが、str_replace
に関してはマルチバイトにも対応しているため、日本語を含む文字でも問題なく置換できる。
$str = "ミネストローネが飲みたい!明日スーパーでミネストローネを買ってこよう!";
$replace_str = str_replace("ミネストローネ", "梅昆布茶", $str);
echo $replace_str; //-> 梅昆布茶が飲みたい!明日スーパーで梅昆布茶を買ってこよう!
str_replace の構文
str_replace
関数の構文は次のとおりである。
str_replace( $search, $replace, $subject, $count );
- search
検索対象(置換する対象)の文字列。(配列で複数指定可) - replace
置換する文字列。$search
で一致した文字列が、この$replace
で指定した文字列に置換される。(配列で複数指定可) - subject
検索および置換する対象の文字列あるいは配列。 - count
指定した場合、対象の文字列に対して置換が行われた回数が入る(output変数)
複数の文字列を一括で置換する
検索対象の文字列に配列を指定すると、配列で指定した文字列を指定した文字を一括で置換できる。
実際にコードを書いて試してみよう。
$str = "パンとスープで朝食を食べた!";
$replace_str = str_replace(["パン", "スープ"], "梅昆布茶", $str);
echo $replace_str; //-> 梅昆布茶と梅昆布茶で朝食を食べた!
かなりヤバい感じの朝食メニューとなってしまったが、パン
と スープ
の文字列を一括で置換することができた。
置換する文字列を複数指定する
あまり利用シーンは少ないかもしれないが、検索対象と置換対象に配列を指定することで、配列の各要素に対応する文字が置換される。
$str = "小麦アレルギーなので白米と、米粉100%のパンなら食べられる。";
$replace_str = str_replace(
["白米", "米粉"],
["うどん","小麦粉"],
$str);
echo $replace_str; //-> 小麦アレルギーなのでうどんと、小麦粉100%のパンなら食べられる。
かなりアレルギーが心配される結果となってしまったが、検索対象の配列の1番目の「白米 」に一致する文字が「うどん」に置換され、配列2番目の「米粉」に一致する文字が「小麦粉」に置換されている。
ちなみに上のコードは、次のように2行に分けて置換した時と同じ結果となる。
$replace_str = str_replace("白米", "米粉茶", $str);
$replace_str = str_replace("うどん", "小麦粉", $replace_str);
まとめ
PHPの str_replace
関数を使って、文字列を置換する方法を紹介した。
文字列の置換は、プログラミングおける基本中の基本なので覚えておきたい。
0 件のコメント:
コメントを投稿