parse_url返回url的空字符串:';www.example.com';


parse_url returning empty string for url: 'www.example.com'

为什么parse_url在这种情况下返回空字符串?

<?php
$url='www.example.com';
$var= parse_url($url,PHP_URL_HOST);
print_r($var);

字符串被解释为相对URL:

// print_r(parse_url('www.vtechpcsupport.com'))
Array
(
    [path] => www.vtechpcsupport.com
)  

这是因为www.vtechpcsupport.com并不是真正的URL,因为它缺少scheme部分(HTTP左右),请这样尝试:

$url = 'http://www.vtechpcsupport.com';
$var = parse_url($url,PHP_URL_HOST);
print($var);

这是因为www.vtechpcsupport.com不是一个完整的URL。

您正在指定PHP_URL_HOST,因此函数试图仅提取URL的主机部分,如果没有给定的协议,该部分就不存在——URL被视为相对的——因此您想要的主机名被解释为(相对)路径。

尝试使用:

$url='http://www.vtechpcsupport.com';

你应该得到你期望的行为。