Php 如何取消ajax发送的数据序列化?
数据如下所示:Php 如何取消ajax发送的数据序列化?,php,serialization,Php,Serialization,数据如下所示: sport[]=1&music[]=0&web[]=2 我做到了: $data = unserialize($post["data"]); 但这是一个错误: ErrorException [ 8 ]: unserialize() [function.unserialize]: Error at offset 0 of 27 bytes ~ APPPATH\classes\controller\ajax.php [ 14 ] 您应该像这样使用: parse_s
sport[]=1&music[]=0&web[]=2
我做到了:
$data = unserialize($post["data"]);
但这是一个错误:
ErrorException [ 8 ]: unserialize() [function.unserialize]: Error at offset 0 of 27 bytes ~ APPPATH\classes\controller\ajax.php [ 14 ]
您应该像这样使用:
parse_str( 'sport[]=1&music[]=0&web[]=2', $data);
现在,$data
包含该字符串中的值:
Array
(
[sport] => Array
(
[0] => 1
)
[music] => Array
(
[0] => 0
)
[web] => Array
(
[0] => 2
)
)
$\u POST
和$\u GET
数组已保存来自您请求的未序列化应用程序/x-www-form-urlencoded
数据
请打印
$\u POST
数组的var\u dump()
,以查看如何访问这些值。这里需要一个适当的解释:unserialize()不起作用,因为该字符串不是PHP序列化格式,但看起来像HTTP查询字符串。无论如何,用PHP的原生序列化格式序列化数据不是AJAX方式;通常使用XML或JSON等可互操作的格式。