2012-04-23 151 views
0

我必須從網頁的URL中提取網站的網址。 例如,這是我的PHP代碼:如何從網頁的網址中提取網站的網址?

<?php 

$pageA = "http://stackoverflow.com/questions/tagged/php"; 
$pageB = "https://www.google.it/search?channel=cs&ie=UTF-8&q=php+download"; 
$pageC = "http://www.facebook.com/ladygaga"; 
$pageD = "www.youtube.com"; 
$pageE = "yahoo.com"; 

?> 

,我不得不從這些頁面的URL中提取

stackoverflow.com 
www.google.it 
www.facebook.com 
www.youtube.com 
yahoo.com 

+2

http://php.net/manual/en/function.parse-url.php或使用正則表達式的可能 – ZiTAL 2012-04-23 12:17:48

+1

重複[解析域名從URL在PHP(HTTP:/ /stackoverflow.com/questions/276516/parsing-domain-from-url-in-php) – JJJ 2012-04-23 12:18:49

回答

1

parse_url正是爲了這個。從關聯的手冊:

此函數解析一個URL並返回一個包含存在的URL的各種組件的關聯數組。

例子:

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

print_r(parse_url($url)); 
?> 

將輸出:

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

更新

情況下,有沒有計劃parse_url無法識別等領域。解決這個問題的一個解決方法是捕獲這種情況,附加一個默認方案並重新分析。代碼看起來是這樣的:

<?php 
$url = 'yahoo.com/help'; 
$fields = parse_url($url); 

if(empty($fields['scheme'])) { 
    $fields = parse_url('http://' . $url); 
} 

print_r($fields); 
?> 
+0

它在這種情況下不起作用,例如:it.yahoo.com/ladygaga – xRobot 2012-04-23 12:49:21

+0

@xRobot,用解決方法更新了我的答案解決問題。 – Vikas 2012-04-23 13:51:04