2025年05月16日

PHP関数:preg_replace()


この関数の説明

preg_replace() は文字列を正規表現で検索し、指定した文字列に置き換えるPHP関数です。

下記の様な用途に利用できます。

①文字の置換

②入力値を表示値に変換

③入力データの空白を削除する

④クラス名やID名で使える文字列に変換する

 


関数

preg_replace ( $search , $replace , $data )

 


パラメータ

$search(正規表現文字)必須

探す文字列を正規表現で指定します。

 

$replace(文字列)必須

置き換える文字列を指定します。

 

$data(文字列)必須

検索対象の文字列を指定します。

 


戻り値

リプレース後の文字列

 


利用例

①文字の置換

下記は 'x' '100' に置き換えます。

<?php 
	$data = 'この商品はx円です。'; // 処理対象 
	$search = '/x/'; // 探す文字を正規表現で記述します。 
	$replace = 100; // 置き換える文字 
	echo preg_replace($search , $replace , $data).'<br>'; 
?>

■下記データが表示されます。

この商品は100円です。

str_replace()でも同じ事ができます。

 

②入力値を表示値に変換

下記は入力フォームの中のある[チェックBOX]や[radio]及び[セレクト]で選択されたValue値を表示値に変換する時によく利用されます。

<?php
	$_POST['item'] = [1, 3]; //選択されたデータが入る配列です。
	$item = implode(',',$_POST['item']);//配列を文字列に変換
	echo '選択されたValue値は『'.$item.'』です。<br>'; 
	$ans = preg_replace(['/1/', '/2/', '/3/'], ['項目1', '項目2', '項目3'], $item);//選択値を表示値に変換
	echo '変換された表示値は『'.$ans.'』です。<br>';
?>

■下記が表示されます。

選択されたValue値は『1,3』です。
変換された表示値は『項目1,項目3』です。

str_replace()でも同じ事ができます。

 

③入力データの空白を削除する

入力データの先頭や末尾に空白があると色々な問題を起こします。

下記は入力データの前と後ろにある全角スペースも含めた空白を削除する方法です。

<?php
	$input = '  	山田 太郎  	';   //文字の前後に半角スペース、全角スペース、タブの空白文字が入っています。
	$data = preg_replace('/^[\s ]+|[\s ]+$/u' , '' , $input);
	var_dump($input);echo '<br>';
	var_dump($data);echo '<br>';
?>

■実行結果は下記になります。

string(23) "   山田 太郎   "
string(13) "山田 太郎"

trim()という関数でも同様の事ができます。

 

④クラス名やID名で使える文字列に変換する

一般的なクラス名やID名は、あらかじめ決めた命名ルールで記述するのが原則です。

しかし商品コードをクラス名に利用して、商品表示のON/OFFを制御したいケースがあります。

この様な場合は、商品コードをクラス名で利用できるコードに変更する必要があります。

<?php 
	$code = 'abc(123)-[ABC]_{山田さん]' ;
	$search = '/[ -,.\/:-@\[-^`{-~]/' ; // クラス名で使えない文字を正規表現で表しています
	$replace = '_';                             // クラス名で使える記号
	$after_data = preg_replace($search , $replace , $code);
	echo $code.'<br>';
	echo $after_data;
?>

■上記の例では()[]{}はクラス名には利用できません。そこで、これらを「_」に変更しています。

■実行結果は下記の様になります。

abc(123)-[ABC]_{山田さん]
abc_123_-_ABC___山田さん_

 


関連情報

関連関数は 正規表現で操作する関数 を参照してください。

 


関数一覧
  • 01.PHPとWordPressプログラム
  • 02.PHPの出力コマンド
  • 03.PHPの変数規則と文字連結
  • 04.PHPのif文
  • 05.PHPの配列とループ処理
  • 06.PHPのオブジェクト
  • 07.PHPの関数
  • 08.PHPの正規表現
  • 09.PHPファイルや関数の読み込み
  • 10.PHPのフォーム操作
  • 11.オートコンプリートとは?
  • array_keys()
  • array_reverse()
  • checkdate()
  • count()
  • date()
  • echo
  • empty()
  • explode()
  • implode()
  • in_array()
  • intval()
  • isset()
  • preg_match_all()
  • preg_match()
  • preg_replace()
  • preg_split()
  • print_r()
  • session_id()
  • session_start()
  • sprintf()
  • str_replace()
  • strpos()
  • trim()
  • var_dump()