我有一个看起来像这样的网址:
http://localhost/projectcode12may2014/ampanel/index.php?rel=common_listing&module=company&field%5B%5D=address&adv_operation%5B%5D=c&value%5B%5D=sector&query_type%5B%5D=AND&submit=Submit
在解码后的形式中,它看起来像:
http://localhost/projectcode12may2014/ampanel/index.php?rel=common_listing&module=company&field[]=address&adv_operation[]=c&value[]=sector&query_type[]=AND&submit=Submit
我正在尝试解析此网址并将field[]
,adv_operation[]
和query_type[]
的值作为数组,但我只是在文本中写Array
尝试解析这些字段。我使用parse_url()
和parse_str()
进行解析。
任何人都可以建议一个合适的方法吗?
提前致谢。
答案 0 :(得分:1)
您可能错误地显示了数组部分,因为您的方法应该可以正常工作。
您使用parse_url提取"查询" URL的一部分,然后使用parse_str将其加载到变量中。
示例:强>
$url = "http://example.com/page.php?a=apple&b=banana&z=zebra&arr[]=1&arr[]=2";
$query = parse_url($url, PHP_URL_QUERY);
var_dump($query);
// string(40) "a=apple&b=banana&z=zebra&arr[]=1&arr[]=2"
parse_str($query, $parsed);
var_dump($parsed);
/*
array(4) {
["a"]=>
string(5) "apple"
["b"]=>
string(6) "banana"
["z"]=>
string(5) "zebra"
["arr"]=>
array(2) {
[0]=>
string(1) "1"
[1]=>
string(1) "2"
}
}
*/
// $parsed["arr"] is now array(1, 2);
答案 1 :(得分:0)
以下是数组参数的输出格式:
$url = '<your_url>';
$parsedUrl = parse_url($url, PHP_URL_QUERY);
parse_str($parsedUrl);
echo $field;
/*
outputs as:
Array
*/
echo $field[0];
/*
outputs as:
address
*/
print_r($field);
/*
outputs as:
Array
(
[0] => address
)
*/