• 締切済み

ereg_replaceについて

ereg_replaceで文字を入れ換えしようとしております。 その際、 <A HREF="http://www.xxx.co.jp/xxx/xxx.cfm?pd=13850" target="_blank">xxx</A> という文字列の頭のタグ開始部分を取ろうと思ってるのですが、URLに?が入ってるものが入れ換えができません。 解決方法など、お分かりになる方おられましたら、ご教授のほうよろしくお願いします。

みんなの回答

  • you111111
  • ベストアンサー率45% (20/44)
回答No.2

PHPはよくわからないのですが、取得したURL内の?をエスケープする(\?にする)のでしたら以下のようなものはどうでしょう?・・・JavaScriptですが。 //strTarget(URL等の文字列)を全走査し"?"があったら"\?"にReplaceする function ReplaceAll(strTarget) { var i; var strBuff = ""; for (i = 0; i < strTarget.length; i++) { strBuff += (strTarget.charAt(i) == "?") ? "\\?": strTarget.charAt(i); } return strBuff; }

  • selenity
  • ベストアンサー率41% (324/772)
回答No.1

半角の?がメタ文字なためでしょう。 半角の?の前に半角の¥(またはバックスラッシュ)を入れてエスケープしてあげれば動きませんか?

kagetora_uesugi
質問者

補足

この場合、URLをデータベースから引っ張ってきてるので、エスケープする関数などありましたら、教えていただければ助かります。

関連するQ&A