ITコラム

PHP str_replace

PHP

2019.04.16

PHP【文字列】str_replace で文字列を置換

PHP では、関数 str_replace や strtr 等を使用して文字列を置換することができます。
今回は PHP で文字列を置換する方法を紹介します。
 
尚、本サイトでは XAMPP( ザンプ )という開発環境を使用しています。
XAMPP のインストール方法や起動方法については以下の記事をご参照下さい。
PHP【 開発環境 】XAMPP インストール
PHP【 開発環境 】XAMPP の使い方

最終更新日:2019年4月16日

目次

1.str_replace で文字列を置換
2.substr_replace で文字列の一部を置換
3.strtr で文字列を置換
 

1.str_replace で文字列を置換

str_replace 関数は、文字列中のある文字列を別の文字列に置き換える関数です。

実行すると、置換後の文字列が返ります。

str_replace 関数は 次のように記述して使用します。

str_replace ( 置換前文字列, 置換後文字列, 置換対象文字列 [, $num ] ) ;

第 1 引数には、置換前の文字列を指定します。

第 2 引数には、置換後の文字列を指定します。

第 3 引数には、置換対象となる文字列を指定します。

第 4 引数に 変数を指定すると、置換が行われた個数が格納されます。

第 1 引数~第 3 引数には、文字列ではなく配列を指定することもできます。

str_replace のサンプル

str_replace 関数を使用して 文字列を置換してみます。

下記のようなソースファイルを作成して ブラウザからアクセスすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)

<?php

  $str = "2019/04/16";

  echo str_replace("/", "-", $str);

?>

「 echo 」は、データを出力するために使用する PHP の命令です。

「 / 」を「 - 」に置換したので「 2019/04/16 」が「 2019-04-16 」となりました。

 
今度は、上のサンプルで使用している str_replace 関数の第 4 引数を指定して、置換個数を取得してみます。

<?php

  $str = "2019/04/16";

  str_replace("/", "-", $str, $num);

  echo $num;

?>

str_replace 関数の第 4 引数に指定した 変数 $num に 置換された箇所の個数が格納され、echo で表示することができました。

▲目次へ戻る

 

2.substr_replace で文字列の一部を置換

substr_replace 関数は、文字列中の一部を指定した文字列に置き換える関数です。

実行すると、置換後の文字列が返ります。

substr_replace 関数は 次のように記述して使用します。

substr_replace ( 置換対象文字列, 指定文字列, 置換開始位置 [, 置換範囲 ] ) ;

第 1 引数には、置換対象となる文字列を指定します。文字列ではなく配列を指定することもできます。

第 2 引数には、置換する文字列を指定します。

第 3 引数には、置換範囲の開始位置を 1 文字目を 0 とする数字で指定します。

第 4 引数には、置換範囲を文字列の長さで指定することができます。指定しない場合は、第 3 引数で指定した開始位置以降の全てが置換範囲となります。

substr_replace のサンプル

substr_replace 関数を使用して 文字列を置換してみます。

下記のようなソースファイルを作成して ブラウザからアクセスすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)

<?php

  $str = "123456789";
  echo substr_replace($str, "***", 2, 3);

  echo "<br><br>";

  $str2 = "123456789";
  echo substr_replace($str2, "*********", 0);

?>

「 echo 」は、データを出力するために使用する PHP の命令です。

「 substr_replace($str, “***”, 2, 3) 」のように 第 4 引数で範囲を指定すると、開始位置の 3 文字目から 3 文字分が指定文字列に置換されます。

「 substr_replace($str2, “***”, 0) 」のように 第 4 引数を指定しないと 開始位置以降は全て 指定文字に置換されます。開始位置を 0 に指定した上で第 4 引数が無指定の場合は、置換対象の文字列全てが指定文字列に置換されます。

▲目次へ戻る

 

3.strtr で文字列を置換

strtr 関数は、文字列中のある文字列を別の文字列に置き換える関数です。

実行すると、置換後の文字列が返ります。

strtr 関数は 次のように 2 通りの記述方法があります。

(1) strtr ( 置換対象文字列, 置換前文字列, 置換後文字列 ) ;

(2) strtr ( 置換対象文字列, $array ) ;

(1) 引数が 3 つの場合
・第 1 引数には、置換対象となる文字列を指定します。

・第 2 引数には、置換前の文字列を指定します。

・第 3 引数には、置換後の文字列を指定します。
 

(2) 引数が 2 つの場合
・第 1 引数には、置換対象となる文字列を指定します。

・第 2 引数には、置換前の文字列と置換後の文字列とを配列変数で指定します。指定する配列変数には次のように値を格納します。
 array(“置換前文字列1” => “置換後文字列1”, “置換前文字列2” => “置換後文字列2″…);
 

strtr のサンプル

strtr 関数を使用して 文字列を置換してみます。

下記のようなソースファイルを作成して ブラウザからアクセスすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)

<?php

  $str = "2019/04/16";
  echo strtr($str, "/", "-");

  echo "<br><br>";

  $ary = array("/" => "-", "0" => "*");
  echo strtr($str, $ary);

?>

「 echo 」は、データを出力するために使用する PHP の命令です。

strtr 関数に引数を 3 つ指定する場合は、str_replace 関数を使用した時と同様の結果が得られます( 引数に指定する内容の順番が違う点にはご注意下さい )。

strtr 関数に引数を 2 つ指定する場合は、上のサンプルのように 置換したい文字列を複数同時に指定することができるので便利です。

▲目次へ戻る

SHARE

最新記事

無料相談する

INTERNOUS,inc. All rights reserved.