Php 正则表达式从另一个url中获取url
要从中提取的字符串:Php 正则表达式从另一个url中获取url,php,regex,url,urlencode,Php,Regex,Url,Urlencode,要从中提取的字符串:http:\/\/c.ypcdn.com\/2\/c\/rtd?vrid=357c99c36bd7ed631eda2e43fc9e30f8&rid=283d465f-f63b-4b0d-90b0-be6c12ed7617&ptid=943aw4l8qj&ypid=11720135&lid=194823099&tl=6&lsrc=SP&dest=http%3A%2F%2F cleanation.com 我以前使用过的正则表达式:www\.*?\.\w{2,5} 然而,上面的正则
http:\/\/c.ypcdn.com\/2\/c\/rtd?vrid=357c99c36bd7ed631eda2e43fc9e30f8&rid=283d465f-f63b-4b0d-90b0-be6c12ed7617&ptid=943aw4l8qj&ypid=11720135&lid=194823099&tl=6&lsrc=SP&dest=http%3A%2F%2F cleanation.com
我以前使用过的正则表达式:www\.*?\.\w{2,5}
然而,上面的正则表达式只有在有“www”的情况下才会抓取URL。在里面。如果我去掉正则表达式的“www”,它只会抓取c.ypcdn.com。我想抓住字符串末尾的Cleanation.com
需要是动态的,以便它可以从该url中抓取任何没有“www.”的url。为什么不使用,然后在返回的查询
索引上获取它
编辑:示例:
$url= "http://c.ypcdn.com/2/c/rtd?vrid=357c99c36bd7ed631eda2e43fc9e30f8&rid=283d465f-f63b-4b0d-90b0-be6c12ed7617&ptid=943aw4l8qj&ypid=11720135&lid=194823099&tl=6&lsrc=SP&dest=http%3A%2F%2FCleanation.com";
$query = parse_url($url, PHP_URL_QUERY);
parse_str($query,$params);
echo $params['dest'];
如果这始终是
dest
参数,您可以通过以下方式获取它:
"dest=https?%3A%2F%2F([^?&]+?)"
如果它远离最后一个参数,您可以通过以下方式获取它:
"dest=https?%3A%2F%2F(.+)$"
它总是“dest”参数吗?可能是Wow的复制品,效果更好。谢谢我对PHP还是很陌生。