PHPでの文字列置換: str_replace() と preg_replace()

文字列の操作は、Web開発やプログラムの中で頻繁に行われる作業の一つです。特に、PHPでは文字列を検索して置換するための強力な関数が用意されています。この記事では、文字列の置換を行う2つの主要な関数、str_replace()とpreg_replace()について詳しく解説します。

基本的な文字列の置換: str_replace()

str_replace()はPHPの標準関数で、特定の文字列を別の文字列に置き換えるためのシンプルで強力な方法を提供しています。

mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
  • $search: 検索したい文字列または文字列の配列。
  • $replace: 置換する文字列または文字列の配列。
  • $subject: 置換対象の文字列または文字列の配列。
  • $count (オプショナル): この関数によって行われた全ての置換の数を格納する変数。

以下は、単純な置換の例です。

$original = "Hello World!";
$replaced = str_replace("World", "PHP", $original);
echo $replaced;  // 出力: Hello PHP!

この例では、”Hello World!”という文字列の中の”World”を”PHP”に置き換えています。

正規表現を使った高度な置換: preg_replace()

preg_replace()は、正規表現を使用して文字列の置換を行う強力な関数です。複雑なパターンの文字列を効率的に置き換える際に非常に便利です。

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
  • $pattern: 検索するパターンを表す正規表現またはそれらの配列。
  • $replacement: 置換する文字列または文字列の配列。
  • $subject: 置換対象の文字列または文字列の配列。
  • $limit (オプショナル): 置換する最大回数。
  • $count (オプショナル): この関数によって行われた全ての置換の数を格納する変数。
$original = "I have 4 apples and 3 bananas.";
$replaced = preg_replace("/\d+/", "many", $original);
echo $replaced;  // 出力: I have many apples and many bananas.

上記の例では、正規表現 \d+ を使用して数字を “many” という文字列に置き換えています。

まとめ

文字列の置換は日常の開発作業でよく行われるタスクです。str_replace()はシンプルな置換に適しており、preg_replace()は正規表現を駆使した高度な置換に最適です。適切な関数を選ぶことで、効率的なコードを書くことができます。