2013-09-27 22 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