PHPエラー ereg_replaceをpreg_replaceに



phpはよく分かってないノンプログラマーです。
それでもちょっと新着情報を管理するPHPをちょっとカスタマイズしたくなって挑戦したら、以下のようなエラー?が

Deprecated: Function ereg_replace() is deprecated in XXXX on line 67

原因はこの部分。

$hoge = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\" target=\"_blank\">\\0</a>", $hoge]);

早速ググってみたところ、PHP5.3以降ではereg_replaceは非推奨の関数だからそうです。

ereg_replace() の代替できる関数は preg_replace()のようなので以下のように変更。

$hoge = preg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\" target=\"_blank\">\\0</a>", $hoge]);

preg_replace()にしてみたら、今度は違うエラーが。

Warning: preg_replace(): Unknown modifier ‘+’ in XXXX on line 67

/ のを\/に変えるのと、一番最初と最後に\を追加

$hoge = preg_replace("/[[:alpha:]]+:\/\/[^<>[:space:]]+[[:alnum:]\/]/","<a href=\"\\0\" target=\"_blank\">\\0</a>", $hoge);

これでエラーは表示されなくなりました。
よかった^^

こちら参考にさせていただきました。ありがとうございます。

七ヶ国語できるITエンジニアを目指す
ereg_replaceをpreg_replaceに書き換えた

シェアする

  • このエントリーをはてなブックマークに追加

フォローする