我想从网址中提取一个值,例如网址是
http://www.youtube.com/watch的 V = N22qGmYIUVU &安培;特征= G-标志
我需要使用php从url获取v的值。我理解它需要使用正则表达式来完成,但我不太擅长,我已经检查了其他相关问题,但我发现了他们解决方式的问题。
对于此正则表达式 - /http://www.youtube.com/watch\?v=( [\ w-] {11})/
将v的值限制为11我不希望这样,基本上如果它遇到“#”或“&”或者任何分隔符,v的值应该被终止和提取。
v的值可以是任何长度
请帮忙!
答案 0 :(得分:1)
最简单的方法是使用parse_url函数。 check this link
然后使用http://www.php.net/manual/en/function.parse-str.php
print_r(parse_url('http://www.youtube.com/watch?v=N22qGmYIUVU&feature=g-logo'));
答案 1 :(得分:0)
preg_match("~/watch\?v=(.*?)&~i", $uri, $matches);
这应该可以解决问题。
答案 2 :(得分:0)
这比使用正则表达式更加简单。
<?php
$url = "http://www.youtube.com/watch?v=N22qGmYIUVU&feature=g-logo";
$parts = parse_url($url);
parse_str($parts['query'], $query);
print_r($query); // $query['v'] is what you want
?>
答案 3 :(得分:0)
使用PHP 5.4,您可以使用阵列解除引用:
parse_str(parse_url("http://www.youtube.com/watch?v=N22qGmYIUVU&feature=g-logo")["query"],$arr);
echo $arr["v"];