href を url パラメータとして渡して、いくつかのタグを別のページにリダイレクトしようとしています。私が使用しているコードは次のようなものです:
preg_replace(
"/<a(\s[^>]*)href=[\"\']??([^\" >]*?)[\"\']??([^>]*)>(.*)<\/a>/siU",
"<a$1href=\"".WWW."go.php?to=".urlencode("$2")."\"$3>$4</a>", $text
);
これは、ここにある正規表現の修正版です。このブロックでこのコードを使用します。
$text = "<...some other tags...><a target=\"_blank\" href=\"http://www.google.com\" style=\"...\" class=\"...\">Google</a></...some other tags...>";
そして、それは正しくキャプチャされますが、を使用すると、 preg 変数に格納されている値ではなく、文字列を受け取ります(私がそうするように) urlencode("$2")
。"$2"
これは urlencode に限定されませんが、これをパラメーターとして他の関数に渡します。したがって、これをエンコードするだけでなく (URL を受け入れるために正規表現をもう少し拡張することもできます)、通常はメソッド内で変数を使用します。
これに対する回避策を知っていますか?前もって感謝します。