反向PHP。$ .param

时间:2015-05-18 14:13:16

标签: php jquery

jQuery中有一个函数$.param,它接受​​一个对象(也可以是嵌套对象)并将其转换为适合GET用法的字符串。

我想知道是否有一个PHP函数会接受该字符串并将其转换回数组(或嵌套数组,如果是这种情况)。有这样的功能吗?

编辑:

我发送这个JS对象(在$.param()之后):

{"categories": [90000]}

我从$_GET在服务器端阅读,然后将其传递给parse_str

我还有一个重新创建预期PHP数组的测试代码。

整个事情看起来像:

$filter = $_GET["my_array"];
parse_str($filters, $_filters);
error_log(print_r($_filters, true), 4);
$x = [
    "categories" => [
        90000
    ]
];
error_log(print_r($x, true), 4);

该代码的输出是:

(
    [categories] => Array
        (
            [0] => 90000
        ) 
)


(
    [categories] => Array
        (
            [0] => 90000
        ) 
)

所以我认为它们是相同的。但随后我将该数组传递给Yii的findAll方法,并且它只与$x一起使用。

也许parse_str在解析时混合普通数组和关联数组,这就是为什么findAll不起作用?

2 个答案:

答案 0 :(得分:4)

我想你可能正在寻找Jon Stirling提到的parse_urlparse_str

请记住,所有查询参数都已存在于$_GET全局。

URL的查询部分的用法。

var_dump(parse_url($url, PHP_URL_QUERY));

答案 1 :(得分:1)

是的,您可以使用parse_str

$serializedData = $_GET['data'];
$unserializedData = array();

parse_str($serializedData, $unserializedData);

print_r($unserializedData);