ywork2020.com

Title

文字列を置き換えする

目次 (INDEX)

str_replace とは

ここで説明する str_replace とは次の語句からなる PHP の関数です。
string
読み: ストリング
意味: 文字列、糸、一連、一続きのもの
replace
読み: リプレイス
意味: 取り替える、置き換える

目次に戻る

str_replace 関数の概要

この関数は、検索文字列に一致した全ての箇所を指定した文字列で置き換えます。

引数に与えた search ( 検索文字列 ) をもって subject ( 検索対象文字列 ) を検索し、 マッチした箇所を replace ( 置換文字 ) で置換した結果を返します。

search 、replace 、subject には文字列、または配列を使用できます。

目次に戻る

構文

サンプルを見る前に構文を確認しておきます。

$replace = str_replace(
    arrSearchArray | strSearchString ,
    arrReplaceArray | strReplaceString ,
    arrSubjectArray | strSubjectString 
    [, $replaceCount]
)
  • Search: この文字列、または配列をもって、subject を対象に検索します。
  • Replace: 検索にマッチした文字列を この文字列、または配列で置き換えます。
  • Subject: 検索の対象となる文字列、または配列です。
  • $replaceCount: 置き換え箇所がいくつあったかを整数値で記録するための変数です。

目次に戻る

サンプルコードと実行結果

このサンプルでは、str_replace() を使った文字列の置き換えと配列の置き換えを行っています。

文字列の置き換えは、至ってシンプルです。これを理解した上で配列の置き換えを見て下さい。 配列の置き換えは、配列の要素数の問題と多重置換の問題を考慮しなくてはいけません。 そのため、サンプルは結果の文章が意図的に崩れるようにしています。

サンプルコード: HTML ( 拡張子は .php )
<body>
<?php
	... 
?>
</body>
  • 02: <?php (php のコードを記述するための開始タグです。)
  • 03: ... (この行は [ サンプルコード: PHP ] の内容の部分です。)
  • 04: ?>(php の記述を終了するための終了タグです。)
  • ここでは HTML ドキュメントの body 要素内に php の開始タグと終了タグを置いていますが、 開始タグと終了タグはドキュメントのどの部分に設置しても構いませんし、ドキュメント内の複数の場所に分けて記述しても問題ありません。 また、HTML ドキュメントとしてではなく、純粋に php のコードのみを記述しても構いません。 ただし、どの記述方法であろうともファイルの拡張子は .php であることが必要です。
サンプルコード: PHP (

文字列の置き換えサンプル

)
<?php
	$searchString = "....";
	$replaceString = ".com";
	$subjectString = "ywork2020....";
	$resultString = str_replace( $searchString, $replaceString, $subjectString, $replaceCount );
	echo( "置き換え箇所は " . $replaceCount . " 箇所でした。<br>");
	echo("結果: " . $resultString );
?>
  • 02: "...." ( .... という文字列を検索することにします。)
  • 03: ".com" ( .... が .com に置き換えられることになります。)
  • 04: "ywork2020...." ( ywork2020.... が置き換え対象の文字列ですので、結果は ywork2020.com となります。)
実行結果:
置き換え箇所は 1 箇所でした。
結果: ywork2020.com





サンプルコード: PHP (

配列の置き換えサンプル

)

配列を利用する場合は下記のことに注意してください。

配列の置き換えも 文字列の場合と基本的に変わりませんが、 search に対して replace の数が足りていない場合、空文字で置き換えされます。

また、search は 配列の最初の要素から順に処理されて行くので、置き換え後の文字列に次の要素とマッチしている箇所があれば、更に置き換えされます。

<?php
	$searchArray = array("a", "b", "c", "d", "e");
	$replaceArray = array("world", "ywork", "2020", ".com");
	$subjectArray = array("hello a", " -- bcd --");
	$resultArray = str_replace( $searchArray, $replaceArray, $subjectArray , $replaceCount );
	echo( "置き換え箇所は " . $replaceCount . " 箇所でした。<br>結果: ");
	for($i = 0; $i < count($resultArray); $i++){
		echo($resultArray[$i] );
	}
?>
実行結果:
置き換え箇所は 6 箇所でした。
結果: hllo worl.com -- ywork2020.com --

目次に戻る