我有一个看起来像这样的字符串:
id_company=57&name=&address=&zip=&place=&phone=&mobile=&email=&birthdate=&birthplace=&bsn=&driver_expires=&role=&date_started=&contract=Tijdelijk&id_type=Paspoort&id_number=&id_expires=
以上示例大部分为空(id_company除外)。
我像这样在jquery中序列化表单:
var $serialized = $form.serialize();
在我的php中,我这样做:
$jsonemployee = unserialize($_POST['serialized']);
在那之后我尝试打印它,因为我希望有一个数组:
echo '<pre>';
print_r($jsonemployee);
echo '</pre>';
但这没显示给我。
我100%确保所有数据都已传递,在我的网络标签中,我看到了发布的字符串,如果我只是回显该字符串,它会显示该字符串。
如何从该字符串创建PHP数组?
答案 0 :(得分:5)
unserialize
并不是要对 格式进行非序列化,它是serialize
的对应格式,它会产生非常不同的结果。要在PHP中解析 URL编码的字符串,请使用parse_str
。
parse_str($_POST['serialized'], $result);
var_dump($result);
当然,您将URL编码的字符串发送为$_POST['serialized']
有点奇怪。您应该将它作为一个唯一的请求正文发送,PHP会自动将其解析为$_POST
并您将无需执行任何操作。
答案 1 :(得分:-1)
您只需执行以下操作即可将该字符串转换为数组:
$myArray = explode("&",$_POST['serialized']);
我认为这对您有用。