2010-03-10 47 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));