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:谢谢,但是实现是在函数内部的,不管它如何工作:)