2024年06月14日

PHP関数:preg_replace()


この関数の説明

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

 


関数

preg_replace ( $search , $replace , $data )

 


パラメータ

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

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

 

$replace(文字列)必須

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

 

$data(文字列)必須

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

 


戻り値

リプレース後の文字列

 


利用例

①文字列で検索して置き換える

<?php 
	$data = 'abc.item.def'; 
	$search = '/item/';  // 探す文字列は正規表現で記述します。
	$replace = 'php'; 
	$after_data = preg_replace($search , $replace , $data);
	echo $data.'<br>';
	echo $after_data;
?>

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

abc.item.def
abc.php.def

 

②入力データから空白を削除する

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

phpにはtrimという関数もありますが、これでは「全角スペース」は取り除けません。

下記は入力データから全角スペースも含めた空白を削除する方法です。

<?php 
	$input = ' 	12
		 ';   //12の前後に半角スペース、タブ、改行、全角スペースが入っています
	$normal_input = preg_replace('/[\s ]+/' , '' , $input);
	var_dump($input);echo '<br>';
	var_dump($normal_input);
?>

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

string(10) " 12  "
string(2) "12"

 

③改行コードを「,」に置き換える

WordPressのカスタムフィールドに「size」と「数値リスト」が登録されているものとします。

この場合、値は改行コードで登録されています。

このように改行で登録されているリストを「,」に置き換えるプログラムは下記になります。

<?php 
	$input = '10
		12
		14
		16
		18';   // 改行で入力データが入っています。
	$normal_input = preg_replace('/[\r\n]+/' , ',' , $input);
	var_dump($input);echo '<br>';
	var_dump($normal_input);
?>

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

string(25) "10 12 14 16 18 "
string(25) "10, 12, 14, 16, 18 "

 

④クラス名や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___山田さん_

 


関連情報

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

 


関数一覧
  • 1.PHPとWordPressプログラム
  • 2.PHPの出力コマンド
  • 3.PHPの変数規則と文字連結
  • 4.PHPのif文
  • 5.PHPの配列とループ処理
  • 6.PHPのオブジェクトとループ処理
  • 7.PHPの文字列操作関数
  • 8.PHPファイルや関数の読み込み
  • 9.PHPのフォーム操作
  • array_keys()
  • array_reverse()
  • checkdate()
  • count()
  • date()
  • echo
  • 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()