2010-03-10 30 views

回答

8

在这种情况下,您不需要正则表达式,您可以使用parse_url函数来完成这项工作。

<?php 
$url = 'http://username:[email protected]/path?arg=value#anchor'; 

print_r(parse_url($url)); 

echo parse_url($url, PHP_URL_PATH); 
?> 

上例将输出:

Array 
(
    [scheme] => http 
    [host] => hostname 
    [user] => username 
    [pass] => password 
    [path] => /path 
    [query] => arg=value 
    [fragment] => anchor 
) 
/path 
+0

@ Pentuim10:功能很好,我没有使用它,今天我已经学习了一些东西,谢谢你! – RageZ 2010-03-10 13:36:16

+0

+1为更好的解决方案。 – 2010-03-10 13:50:59

+1

@RageZ谢谢。看看我的其他答案,在我的个人资料中,已被提升,你可能会发现更多需要学习的东西。 – Pentium10 2010-03-10 14:08:35

2

是他应该不会太难为你参考看看here或了解我的回答

正则表达式后

这样的事情应该让

preg_match('|http://www.youtube.com/v/([^&]+)&hl=en_US&fs=1&|', $url, $match); 
var_dump($match[1]); 

[^&]+基本上意味着多于一个字符,而不是'&','[]'定义一些字符可能性[^]使其反转,所以任何不在括号内的字符,+意味着1或mor e字符。

但是你最好自己看看!

我真的建议你好好看看正则表达式,因为它可以真正节省你的工作时间,一旦你得到它的工作原理,它是真的有用!

1
$str="http://www.youtube.com/v/Nnp82q3b844&hl=en_US&fs=1&"; 
$s = parse_url($str); 
$t = explode("/", $s["path"]); 
print preg_replace("/&.*/","",end($t));