- ベストアンサー
preg_replace()でマッチ文字列に関数を
PHPでのpreg_replace()でマッチした文字列に関数を適用したいのですが、上手くいきません。 $str = "hogeHoge"; $pattern = '/(h.ge)/i'; $replacement = strtoupper("$1"); echo preg_replace($pattern, $replacement, $str); // 期待する結果 : HOGEHOGE // 実行した結果 : hogeHoge 根本的に間違っているかもしれませんが、ご指南いただければ幸いです。
- みんなの回答 (1)
- 専門家の回答
お礼
ご回答ありがとうございます。 下記のように変更してうまくいきました。 $str = "hogeHoge"; $pattern = '/(h.ge)/i'; $replacement = "$1"; echo preg_replace_callback($pattern, create_function('$replacement','return strtoupper($replacement[0]);'), $str);