PHP 解析 URL - 当协议(protocol)前缀不存在时域作为路径返回

标签 php parse-url

我正在尝试解析 PHP 中的 URL,其中输入可以是以下任何一种:

代码:

$info = parse_url('http://www.domainname.com/');
print_r($info);

$info = parse_url('www.domain.com');
print_r($info);

$info = parse_url('/test/');
print_r($info);

$info = parse_url('test.php');
print_r($info);

返回:

Array
(
    [scheme] => http
    [host] => www.domainname.com
    [path] => /
)
Array
(
    [path] => www.domain.com
)
Array
(
    [path] => /test/
)
Array
(
    [path] => test.php
)

您可以看到的问题是域作为路径返回的第二个示例。

最佳答案

这给出了正确的结果,但文件需要以斜杠开头:

parse('http://www.domainname.com/');
parse('www.domain.com');
parse('/test/');
parse("/file.php");

function parse($url){
    if(strpos($url,"://")===false && substr($url,0,1)!="/") $url = "http://".$url;
    $info = parse_url($url);
    if($info)
    print_r($info);
}

结果是:

Array
(
    [scheme] => http
    [host] => www.domainname.com
    [path] => /
)
Array
(
    [scheme] => http
    [host] => www.domain.com
)
Array
(
    [path] => /test/
)
Array
(
    [path] => /file.php
)

关于PHP 解析 URL - 当协议(protocol)前缀不存在时域作为路径返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10359347/

相关文章:

php - 如何从 Sonata Admin 的 Admin 类访问 Entity 类?

php - value 文件 uploader : size value for onComplete, 列表项 Hook 和文件覆盖选项

javascript - 上传base64字符串图像

PHP - 如何获取没有值的 $_GET 参数

php - 如何在 bash 中执行 php 脚本?

javascript - 在 Javascript 中解析友好的 URL

php - 对可能不包含协议(protocol)的字符串运行 parse_url()

php - 使用带有 RSS 提要的 PHP_URL_QUERY 复制内容

php/mysql 查询生成 imagemagick 图像 - 不好的做法?

php - while循环没有输出正确的结果