为什么这段代码没有给我任何结果?
if(preg_match('#referer\.php\?url=(.*?)#s',$result,$array2)) {
echo $array2[1];
}
问题是,如果我将echo $array2[1]
更改为echo "test";
,它会显示test
。所以问题似乎不是preg_match
算法,是吗?可能是什么问题?
我想要在url=
之后编写的网址,例如referer.php?url=http://www.example.com
应该在http://www.example.com
中提供$array2
。
感谢您的帮助!
答案 0 :(得分:1)
尝试以这种方式改变它:
if(preg_match('#referer\.php\?url=(.*)$#s',$result,$array2))
所以print_r($array2)
会输出:
Array
(
[0] => referer.php?url=http://www.example.com
[1] => http://www.example.com
)
这就是你想要的结果。希望它有所帮助!
答案 1 :(得分:0)
如果您的输入是:<td align="center" width="90%"><b><a target="_blank" href="/referer.php?url=http://www.example.com?somethin=1234">Go to this homepage</a></b>
,你想要http://www.example.com?somethin=1234
,
你的正则表达式看起来像这样:
/referer\.php\?url=([^"]*)
这会让你的php看起来像这样:
if(preg_match('#/referer\.php\?url=([^"]*)#',$result,$array2)){
print_r($array2);
}