- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP5.3以降のereg_replaceについて)
PHP5.3以降でのereg_replaceについて
このQ&Aのポイント
- PHP5.3以降のアップデートにより、ereg_replaceで警告が発生するようになりました。preg_replaceへの移行が推奨されているため、コードを書き換えようとしましたがうまくいきません。
- メルマガの記事『ereg_replaceからpreg_replaceへの移行方法』を参考に、パラメータにスラッシュを追加しましたが、結果は画面に表示されず、正しく使用方法が分かりません。
- OKWaveの質問『URLに自動的にハイパーリンクを付加するにはどうすればいいですか?』に記載されているコードを使っていますが、ereg_replaceを使用しています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>2つ目のパラメータの前後に/を付けましたが、 入れる場所が間違っています。 1つ目に入れましょうね。 デミリタを/とした場合、マッチパターン部分に入っている/の前には\を入れる必要があります。 例) preg_replace("/ttp:\/\/hogehoge/","hogehoe",$str); そうしていないからエラーになったのでしょう。 提示の正規表現を以下に修正してみました。 今回はデミリタを、#にしています。 $proto = preg_replace("#(https?|ftp|news)(://[[:alnum:]\+\$\;\?\.%,!\#~*/:@&=_-]+)#","<a href=\"$1$2\" target=\"_blank\">$1$2</a>",$proto);
お礼
ご回答ありがとうございます。 ご教示いただいたソースで意図した動作となりました。 このたびはどうもありがとうございました。 以上、よろしくお願いします。