• ベストアンサー
※ 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を使用しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • mikemike7
  • ベストアンサー率87% (97/111)
回答No.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);

参考URL:
http://php.net/manual/ja/function.preg-replace.php
iroha_168
質問者

お礼

ご回答ありがとうございます。 ご教示いただいたソースで意図した動作となりました。 このたびはどうもありがとうございました。 以上、よろしくお願いします。

関連するQ&A

専門家に質問してみよう