- 締切済み
ereg_replaceについて
ereg_replaceで文字を入れ換えしようとしております。 その際、 <A HREF="http://www.xxx.co.jp/xxx/xxx.cfm?pd=13850" target="_blank">xxx</A> という文字列の頭のタグ開始部分を取ろうと思ってるのですが、URLに?が入ってるものが入れ換えができません。 解決方法など、お分かりになる方おられましたら、ご教授のほうよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- 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
半角の?がメタ文字なためでしょう。 半角の?の前に半角の¥(またはバックスラッシュ)を入れてエスケープしてあげれば動きませんか?
補足
この場合、URLをデータベースから引っ張ってきてるので、エスケープする関数などありましたら、教えていただければ助かります。