2010-02-25 73 views
2

鑑於此變量:URL解析功能

$variable = foo.com/bar/foo 

什麼功能將修剪$變量FOO.COM?

編輯:我希望該功能能夠修剪可能在域名後面出現的URL上的任何內容。

由於提前,

約翰

回答

3

爲OP工作:

$host = parse_url($url, PHP_URL_HOST); 

PHP的版本我有工作不接受兩個參數(Zend引擎1.3.0)。隨你。這裏是我的工作代碼 - 你必須有完整的URL包括計劃(http://)。如果您可以安全地假定該方案是http://(而不是https://或其他方法),那麼您可以預先考慮該方案以獲取所需內容。

工作對我來說:

$url = 'http://foo.com/bar/foo'; 

$parts = parse_url($url); 
$host = $parts['host']; 

echo "The host is $host\n"; 
+0

嗯......它不適合我。 – John 2010-02-25 06:36:59

+0

哪個版本?兩個都? – 2010-02-25 06:45:16

+0

第二個沒有工作......但後來我嘗試了第一個,但它確實如此,所以我給了你相應的答案。謝謝! – John 2010-02-25 06:52:24

0

我在我的例子

如果你是罰款得到的子域以及使用http://www.google.com/asdf,您可以通過拆分「//」和取第1個元素有效刪除協議並獲得www.google.com/asdf

然後,您可以通過「/」拆分並獲得第0個元素。

這看起來很醜。只是集思廣益這裏=)

0

試試這個:

function getDomain($url) 
{ 
    if(filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED) === FALSE) 
    { 
     return false; 
    } 
    /*** get the url parts ***/ 
    $parts = parse_url($url); 
    /*** return the host domain ***/ 
    return $parts['scheme'].'://'.$parts['host']; 
} 

$variable = 'foo.com/bar/foo'; 
echo getDomain($variable); 
+0

爲什麼要投票請.........? – Sarfraz 2010-02-25 06:16:53

+0

不知道如果這就是爲什麼,但這是複雜的只是得到一個主機的方式:P – casraf 2010-02-25 09:19:19

+0

@henasraf:謝謝但實現是功能內,但它的工作:) – Sarfraz 2010-02-25 09:24:37

0

您可以使用PHP的parse_url功能,然後進入關鍵的 「主機」 的價值得到主機名