Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php URL解析函数_Php_Url - Fatal编程技术网

Php URL解析函数

Php URL解析函数,php,url,Php,Url,鉴于此变量: $variable = foo.com/bar/foo 什么函数会将$variable修剪到foo.com 编辑:我希望该功能能够修剪任何可能出现在域名之后的URL 提前感谢, 约翰我正在使用http://www.google.com/asdf在我的示例中 如果您对获取子域也很满意,那么可以通过“/”分割第1个元素来有效地删除协议并获取www.google.com/asdf 然后可以按“/”拆分,得到第0个元素 那看起来很难看。在这里进行头脑风暴=)为OP工作: $host =

鉴于此变量:

$variable = foo.com/bar/foo
什么函数会将$variable修剪到foo.com

编辑:我希望该功能能够修剪任何可能出现在域名之后的URL

提前感谢,


约翰

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

如果您对获取子域也很满意,那么可以通过“/”分割第1个元素来有效地删除协议并获取
www.google.com/asdf

然后可以按“/”拆分,得到第0个元素


那看起来很难看。在这里进行头脑风暴=)

为OP工作:

$host = parse_url($url, PHP_URL_HOST);
$url = 'http://foo.com/bar/foo';

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

echo "The host is $host\n";
我必须使用的PHP版本不接受两个参数(Zend Engine 1.3.0)。无论什么这是我的工作代码-您必须拥有完整URL,包括方案(http://)。如果您可以安全地假设该方案是http://(而不是https://或其他内容),那么您可以预先编写该方案以获得所需的内容

为我工作:

$host = parse_url($url, PHP_URL_HOST);
$url = 'http://foo.com/bar/foo';

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

echo "The host is $host\n";
试试这个:

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);

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

第二个不起作用。。。但是后来我试了第一个,它成功了,所以我给了你答案。谢谢不知道这是为什么,但这对于一个主持人来说太复杂了:P@henasraf:谢谢,但是实现是在函数内部的,不管它如何工作:)