[英]Parsing URL query in PHP
假设有一个www.domain.org?x=1&y=2&z=3
的网址,那么在不使用GET或REQUEST的情况下,在php中分离出网址的查询元素的智能方法是什么?
$url = parse_url($url);
echo $url[fragment];
我认为不可能单独返回查询部分吗? 据我所知,查询只会说x=1&y=2&z=3
但如果我错了请告诉我。 否则,您将如何解析$url[query]
?
编辑:片段应该是查询。 对不起,我正在学习!
您可以执行第二步并使用parse_str解析查询字符串。
$url = 'www.domain.org?x=1&y=2&z=3';
$url_parts = parse_url($url);
parse_str($url_parts['query'], $query_parts);
var_dump($query_parts);
我假设你的意思是查询字符串而不是片段,因为片段没有标准模式。
上面的一些答案我得到了错误,但他们确实引导我找到了正确的答案。 多谢你们。
$url = 'www.domain.org?x=1&y=2&z=3';
$query = $url[query];
parse_str($query);
echo "$x &y $z";
这输出: 1 2 3
,这是我想弄清楚的。
作为一个没有错误检查的单线
parse_str(parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY), $query);
$query
将包含查询字符串参数
与PHP的$_GET
,这将适用于任何长度的查询参数
我强烈建议使用这个url包装器https://github.com/weew/url (我写的)
它能够解析复杂的URL,如protocol://username:password@subdomain.domain.tld:80/some/path?query=value#fragment
,还有更多好东西 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.