如何从该序列化的字符串创建PHP数组?

时间:2018-09-19 12:57:16

标签: javascript php arrays

我有一个看起来像这样的字符串:

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数组?

2 个答案:

答案 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']);

我认为这对您有用。