如何解析网址的数组元素

时间:2014-06-20 13:51:25

标签: php html arrays

我有一个看起来像这样的网址:

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()进行解析。 任何人都可以建议一个合适的方法吗? 提前致谢。

2 个答案:

答案 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
)
*/