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に書き換えた