1

要从中拉出的字符串: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

我以前用过的正则表达式:www\..*?\.\w{2,5}

但是,上面的 RegEx 只会在 URL 有“www”的情况下获取 URL。在里面。如果我拿出“www”。它只是抓住了 c.ypcdn.com 的 RegEx。我想抓住字符串末尾的 Cleanation.com。

需要是动态的,以便它可以抓取任何没有“www”的网址。出那个网址。

4

2 回答 2

3

为什么不在返回的索引上使用parse_url()然后parse_str()query来获取它?

编辑:示例:

$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'];
于 2012-06-11T01:03:21.303 回答
0

如果这始终是dest参数,您可以通过以下方式获取它:

"dest=https?%3A%2F%2F([^?&]+?)"

如果它没有最后一个参数,您可以通过以下方式获取它:

"dest=https?%3A%2F%2F(.+)$"
于 2012-06-11T01:08:40.040 回答