【PHP8.x】str_replace関数の使い方

str_replace関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

str_replace関数は、指定された文字列の中で特定の文字列を探し、別の文字列に置き換える処理を実行する関数です。この関数は、テキストデータの中から不要な部分を削除したり、特定のキーワードを一括で修正したり、フォーマットを整えたりする際に非常に役立ちます。例えば、ウェブサイトのコンテンツの更新や、ユーザーからの入力データの加工など、PHPプログラミングにおける文字列操作の基本的ながらも強力なツールとして幅広く利用されています。

基本的な使い方としては、第一引数に「探す文字列」、第二引数に「置き換える文字列」、第三引数に「処理対象の文字列」を指定します。これらの引数には単一の文字列だけでなく、文字列の配列を渡すことも可能です。配列を渡した場合、str_replace関数は配列の要素を1対1で対応させ、複数の置換処理を一度に効率良く実行します。

この関数は大文字と小文字を区別して置換を行います。そのため、大文字・小文字を区別しない置換を行いたい場合は、関連するstr_ireplace関数をご利用ください。また、オプションとして第四引数に整数型の変数を指定すると、置換が実際に行われた回数をその変数に格納することができます。これにより、置換の実行結果を数値で把握できます。str_replace関数は、日本語などのマルチバイト文字を含む文字列であっても安全かつ正確に置換処理を実行できます。

構文(syntax)

1<?php
2
3$text = "PHP is a popular scripting language. PHP is widely used.";
4$search = "PHP";
5$replace = "Python";
6$new_text = str_replace($search, $replace, $text);
7
8echo $new_text;
9
10?>

引数(parameters)

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

PHP:

  • array|string $search: 置換対象の文字列または文字列の配列
  • array|string $replace: 置換後の文字列または文字列の配列
  • array|string $subject: 検索および置換対象の文字列または文字列の配列
  • int &$count = null: 置換が発生した回数。省略可能

戻り値(return)

array|string

指定された文字列を検索し、別の文字列に置き換えた結果の文字列、または置換が1回も行われなかった場合は元の文字列を返します。置換の回数も配列として返される場合があります。

サンプルコード

PHP str_replace 文字列置換を行う

1<?php
2
3/**
4 * str_replace 関数の基本的な使用方法を示すサンプルコードです。
5 *
6 * str_replace は正規表現ではなく、指定された文字列を単純に別の文字列に置換します。
7 * 正規表現を用いた置換が必要な場合は、preg_replace 関数を使用してください。
8 */
9function demonstrateStrReplaceBasicUsage(): void
10{
11    // 1. 単一の文字列を別の単一の文字列に置換する
12    $originalString = "こんにちは、世界!PHPは素晴らしい言語です。";
13    $replacedString = str_replace("世界", "皆さん", $originalString);
14
15    echo "--- 単一文字列置換の例 ---\n";
16    echo "元文字列: " . $originalString . "\n";
17    echo "置換後:   " . $replacedString . "\n\n";
18
19    // 2. 複数の文字列を同時に置換する(検索と置換に配列を使用)
20    $programmingLanguages = "PHPとJavaとPythonは人気のある言語です。";
21    $searchFor = ["PHP", "Java", "Python"];
22    $replaceWith = ["JavaScript", "Ruby", "Go"];
23    $multipleReplacedString = str_replace($searchFor, $replaceWith, $programmingLanguages);
24
25    echo "--- 複数文字列置換の例 ---\n";
26    echo "元文字列: " . $programmingLanguages . "\n";
27    echo "置換後:   " . $multipleReplacedString . "\n\n";
28
29    // 3. 置換が行われた回数を数える(&$count 引数の使用)
30    $fruitsString = "apple, orange, apple, grape, apple";
31    $searchFruit = "apple";
32    $replaceFruit = "banana";
33    $replacementsCount = 0; // 置換された回数を格納する変数
34
35    $countedReplacedString = str_replace($searchFruit, $replaceFruit, $fruitsString, $replacementsCount);
36
37    echo "--- 置換回数カウントの例 ---\n";
38    echo "元文字列:   " . $fruitsString . "\n";
39    echo "置換後:     " . $countedReplacedString . "\n";
40    echo "置換された回数: " . $replacementsCount . "回\n";
41}
42
43// 関数を実行してサンプルコードの動作を確認します
44demonstrateStrReplaceBasicUsage();

PHPのstr_replace関数は、指定された文字列を別の文字列に置換するために使用されます。この関数は正規表現ではなく、単純な文字列の検索と置換を行います。正規表現による置換が必要な場合は、preg_replace関数をご利用ください。

第一引数$searchには検索対象の文字列、第二引数$replaceには置換後の文字列、第三引数$subjectには実際に処理を行う元の文字列を指定します。これらの引数は、それぞれ単一の文字列または文字列の配列として指定できます。配列を指定した場合、対応する要素が順番に置換されます。

第四引数&$countはオプションで、置換が行われた回数を格納するための変数を参照渡しで指定できます。これにより、いくつの置換が発生したかを確認することが可能です。関数の戻り値は、置換処理が完了した後の新しい文字列となります。$subjectが配列だった場合は、戻り値も配列になります。

サンプルコードでは、まず単一の文字列を別の文字列に置換する例、次に複数の文字列を同時に別の文字列に置換する例を示しています。さらに、特定の文字列を置換しながら、その置換回数を&$count引数で取得する方法も確認できます。この関数は、プログラム内で特定の文字列を効率的に変更する際に役立ちます。

str_replace関数は、指定した文字列を別の文字列に置換する際に使われます。最も重要な注意点は、この関数が正規表現を使用しないという点です。パターンマッチングに正規表現を使いたい場合は、preg_replace関数を利用する必要があります。

また、str_replaceはデフォルトで大文字・小文字を区別して置換します。大文字・小文字を区別せずに置換したい場合は、str_ireplace関数を使用すると良いでしょう。検索文字列や置換文字列に配列を渡すことで、複数の置換操作を一度に実行できます。さらに、第4引数に整数型の変数を参照渡しすることで、実際に文字列が置換された回数を取得できるため、処理の追跡やデバッグに役立ちます。これらの特性を理解し、適切な場面で活用してください。

PHP str_replaceで複数置換する

1<?php
2
3// str_replace関数を使って、複数の文字列を一括で置換するサンプルコードです。
4// 第一引数(検索文字列)と第二引数(置換文字列)に配列を渡すことで、
5// 複数の異なる置換操作を一度に行うことができます。
6
7// 検索したい文字列の配列を定義します。
8// 例: 'apple' を 'red_fruit' に、'banana' を 'yellow_fruit' に置換します。
9$searchWords = [
10    'apple',
11    'banana',
12    'orange',
13];
14
15// 検索文字列に対応する置換後の文字列の配列を定義します。
16// $searchWords の要素と $replaceWords の要素は、配列の順序に基づいて関連付けられます。
17// 例えば、$searchWords の最初の要素 ('apple') は $replaceWords の最初の要素 ('red_fruit') に置換されます。
18$replaceWords = [
19    'red_fruit',
20    'yellow_fruit',
21    'citrus_fruit',
22];
23
24// 置換対象となる元の文字列を定義します。
25$originalString = "I have an apple, a banana, and an orange in my basket.";
26
27// str_replace関数を実行します。
28// この関数は、指定された文字列($originalString)の中から、$searchWords配列内の各要素を検索し、
29// それに対応する $replaceWords配列内の要素に置換します。
30$modifiedString = str_replace($searchWords, $replaceWords, $originalString);
31
32// 置換結果を出力して確認します。
33echo "元の文字列: " . $originalString . PHP_EOL;
34echo "置換後の文字列: " . $modifiedString . PHP_EOL;
35
36?>

PHPのstr_replace関数は、指定した文字列を別の文字列に置換する機能を提供します。このサンプルコードは、複数の文字列を一括で置換する方法をシステムエンジニアを目指す初心者の方にも分かりやすく説明しています。

str_replace関数は、第一引数に検索したい文字列、第二引数に置換後の文字列、第三引数に置換対象の元の文字列を指定します。この関数では、第一引数($search)と第二引数($replace)に文字列の配列を渡すことで、複数の異なる置換操作を一度に行うことができます。

サンプルコードでは、$searchWords配列に置換したい複数のキーワードを、$replaceWords配列にそれらに対応する置換後の文字列を定義しています。これらの配列は、要素の順序に基づいて関連付けられます。例えば、$searchWordsの最初の要素('apple')は$replaceWordsの最初の要素('red_fruit')に置換されます。

そして、$originalStringに置換対象となる元の文章を設定し、str_replace関数を実行します。この関数は$originalStringの中から$searchWords配列内の各要素を検索し、それに対応する$replaceWords配列内の要素に置換した新しい文字列を戻り値として返します。

このように、str_replace関数に配列を渡すことで、複数の文字列の置換処理を効率的かつ簡潔に記述することが可能になります。実行結果として、元の文字列と、複数の置換が適用された後の文字列が表示されます。

str_replace関数で複数の文字列を配列で置換する際、第一引数の検索文字列と第二引数の置換文字列の要素は、配列の順序に基づいて1対1で対応します。この対応関係がずれると意図しない結果になるため注意してください。

また、検索文字列が複数ある場合、配列内で指定された順序で置換処理が行われます。前の置換によって生成された文字列が、次の置換の対象となる可能性があるため、置換の順序には特に注意が必要です。

この関数は大文字と小文字を区別して置換します。もし大文字・小文字を区別せずに置換したい場合は、代わりにstr_ireplace関数を使用してください。

置換が実際に何回行われたかを知りたい場合は、第四引数に整数型の変数を指定することで、その変数が置換回数を受け取ります。これにより、意図通りに置換が行われたかを確認できます。

関連コンテンツ