URL解析功能

时间:2010-02-25 06:05:46

标签: php url

鉴于此变量:

$variable = foo.com/bar/foo

将f变量修改为foo.com的功能是什么?

编辑:我希望该函数能够修剪可能在域名之后的URL上的任何内容。

提前致谢,

约翰

4 个答案:

答案 0 :(得分:3)

为OP工作:

$host = parse_url($url, PHP_URL_HOST);

我必须使用的PHP版本不接受两个参数(Zend Engine 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";

答案 1 :(得分:0)

我在我的示例中使用http://www.google.com/asdf

如果您也可以获得子域名,则可以按“//”拆分并使用第1个元素有效删除协议并获取www.google.com/asdf

然后你可以用“/”拆分并得到第0个元素。

这看起来很难看。只是在这里头脑风暴=)

答案 2 :(得分: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);

答案 3 :(得分:0)

你可以使用php的parse_url函数,然后访问键“host”的值来获取主机名