gpt4 book ai didi

php - parse_url() 不解析特定的 url

转载 作者:搜寻专家 更新时间:2023-10-31 21:27:30 24 4
gpt4 key购买 nike

我遇到了 PHP parse_url() 的问题。

我的网址看起来像:

$url = "_search?q=sku:89399";
var_dump(parse_url($url));

据此,var_dump() 返回 bool(false) 表示这不是正确的 url。

但是使用这样的 url 可行吗?!

$url = "_search?q=sku:202490";
var_dump(parse_url($url));

var_dump() 返回 array(2) { ["path"]=> string(7) "_search"["query"]=> string(12) "q= sku:202490"}

那么您知道为什么 sku:202490 有效而 sku:89399 无效吗?

非常感谢!

更新:谢谢大家的意见。根据前几条评论,我可以确认如果该号码的位数不超过 5 位,则该号码被解释为端口号。因此,如果 5 位或更少位数的数字大于 65535 parse_url() 将不起作用。

最佳答案

您可以为特定的 url 设置一个“虚拟”方案:

示例#1

$url = "_search?q=sku:89399";
var_dump(parse_url("test://".$url));

输出#1

array(3) {
["scheme"]=> string(4) "test"
["host"]=> string(7) "_search"
["query"]=> string(11) "q=sku:89399"
}

您的代码适用于 PHP >= 7.0.0 beta1!

示例#2

$url = "_search?q=sku:89399";
var_dump(parse_url($url));

输出 #2(PHP 版本 >= 7.0.0 beta1)

array(2) {
["path"]=> string(7) "_search"
["query"]=> string(11) "q=sku:89399"
}

输出 #2(PHP 版本 < 7.0.0 beta1)

bool(false)

根据以上信息,可以编写自己的函数来执行此操作。尝试以下方法:

<?php
function custom_parse_url($url) {
if (version_compare(phpversion(), '7.0.0beta1') < 0) {
return parse_url('test://'.$url);
} else {
return parse_url($url);
}
}

$url = "_search?q=sku:89399";
var_dump(custom_parse_url($url));

在这里您可以找到一个工作示例:https://3v4l.org/dN2bP

关于php - parse_url() 不解析特定的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34020735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com