2013-09-27 54 views
2

由於使用網址:PHP - 從URL的帶路徑 - 沒有內置函數?

http://mysite.com/this-is/the/path 

我只想方案和主機即http://mysite.com/

目前我使用parse_url,然後構建它備份就像這樣:

$urlParts = parse_url($url); 
$newUrl = $urlParts['scheme'] . "://" . $urlParts['host'] . "/"; 

請問有沒有什麼可以剝奪的路徑關閉PHP函數?

+3

不,我知道的,按理說,不應該有 - 看到,因爲兩行代碼似乎在做的工作? PHP的基本功能已經足夠臃腫了...... –

回答

0

您可以使用正則表達式:

$url = 'http://mysite.com/this-is/the/path'; 
$pattern = '~^(.*?//.*?)/.*~'; 
preg_match($pattern, $url, $matches); 
echo $matches[1]; // http://mysite.com 

不過,我會用parse_url()和重建作爲你現在正在從事的字符串。

3

不是我所知道的。這是一個很好的例子,您可以考慮編寫自己的公共職能。

public function stripUrlPath($url){ 
    $urlParts = parse_url($url); 
    $newUrl = $urlParts['scheme'] . "://" . $urlParts['host'] . "/"; 
    return $newUrl; 
} 

然後用它在你的代碼:

$newUrl = stripUrlPath($oldUrl); 
-2
<?php 
    echo 'http://' . $_SERVER['HTTP_HOST'] . '/'; 
?> 
+0

-1:HTTPS如何?此外,問題是關於任意的url,而不是當前的查詢。 – mkf

+0

也許他不在乎 –

+0

編寫健壯的代碼是不錯的,它不會做出像這樣的不必要的假設。半年後你可以很容易地將自己導入一個試圖使用這種功能的隱藏的bug。 – mkf