例如,我有以下URL地址:
https://www.example.com?id=safety&order=1&price=0..995&property[172]=Canasafe
我可以用这个查询:
$_SERVER['QUERY_STRING']
将输出以下内容
id=safety&order=1&price=0..995&property[172]=Canasafe
是否可以仅使用price
和property
这样的查询?
我想要这个:
?price=0..995&property[172]=Canasafe
答案 0 :(得分:2)
使用所需索引创建一个数组。使用parse_str()
和parse_url()
的组合从URL中获取所有元素,然后循环这些元素-选择与$fetch_elements
数组相交的元素。然后,您只需在该阵列上http_build_query()
!
$result = [];
$fetch_elements = ['property', 'price'];
$_SERVER['QUERY_STRING'] = 'https://www.example.com?id=safety&order=1&price=0..995&property[172]=Canasafe';
parse_str(parse_url($_SERVER['QUERY_STRING'], PHP_URL_QUERY), $elements);
foreach ($elements as $k=>$e) {
if (in_array($k, $fetch_elements)) {
$result[$k] = $e;
}
}
echo urldecode(http_build_query($result));
答案 1 :(得分:1)
您可以使用正则表达式在preg_match_all()
中获取url的目标部分
preg_match_all("/price=[^&]+|property\[172\]=[^&]+/", $query, $m);
echo implode("&", $m[0]);
在demo中查看结果
答案 2 :(得分:0)
是的,您可以简单地使用$_REQUEST
因此,您可以使用以下价格来获取价格:
echo $_REQUEST['price'];
示例网址
http://localhost/test.php?id=safety&order=1&price=0..995&property[172]=Canasafe
输出
0..995