你應該做的是先更換的http://
和www.
什麼也沒有,再在前面加上它放回到字符串的所有實例,這使得該字符串一致
str_replace(array("http://www.","http://"),"",$url);
$url = "http://" . $url;
那麼你可以使用parse_url
檢查數據,像這樣
$Data = parse_url($url);
然後只是相應地檢查你的值。
switch(strtolower($Data['host']))
{
case "youtube.com":
// :)
break;
case "vimeo.com":
// :)
break;
case "something.tld":
// :)
break;
}
的$Data
轉儲將輸出類似這樣:
[scheme] => http
[host] => youtube.com
[user] =>
[pass] =>
[path] => /watch
[query] => v=r8FVAHuQvjc&feature=topvideos
[fragment] =>
你現在可以隨便去
$lastSegment = $Data["path"] . "?" . $Data["query"];
這將返回類似/watch?v=r8FVAHuQvjc&feature=topvideos
,如果你想從查詢個別項目,如視頻ID,那麼你可以去:
parse_str($Data["query"],$result);
echo $result["v"];
這將只是輸出的視頻ID。
謝謝。我有幾個問題,想知道你是否可以在這裏幫我一把。我們在哪裏使用$ str? 3的含義是什麼?爲什麼我們需要$ site ...我會閱讀有關preg_match_all的正確方法,但這些問題仍然適用 - 我能再次獲得您的幫助嗎?非常感謝。 – MEM 2011-02-10 15:18:30
增加了一些解釋,希望你找到你的答案:) – aorcsik 2011-02-10 15:30:43