我正在尝试将一些标签重定向到另一个页面,将其 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...>";
它正确地被捕获,但是在使用时urlencode("$2")
,它收到一个"$2"
字符串,而不是存储在 preg 变量中的值(就像我一样)。它不仅限于 urlencode,还可以将其作为参数传递给任何其他函数。所以我不仅想对此进行编码(我总是可以多扩展一点正则表达式以接受 url),而且通常在方法中使用变量。
你知道任何解决方法吗?提前致谢。