PHP:如何通过给定的序列化字符串生成数组
在PHP中将序列化字符串反序列化为数组的方法
嘿,这事儿在PHP里其实特别简单,咱们直接用内置的unserialize()函数就能搞定!这个函数就是专门用来把PHP的序列化字符串还原成原始数据结构的,正好匹配你的需求。
具体实现代码
你可以直接把给定的序列化字符串传入unserialize()函数,就能得到对应的数组了。这里给你写个完整的可运行示例:
<?php // 设置UTF-8编码,避免非ASCII字符乱码 header('Content-Type: text/html; charset=utf-8'); // 你的序列化字符串 $serializedStr = 'a:2:{i:1;a:4:{s:5:"index";s:1:"1";s:4:"name";s:22:"برای تست اول";s:6:"amount";s:6:"600000";s:11:"description";s:31:"فقط برای یک دامنه";}i:2;a:4:{s:5:"index";s:0:"";s:4:"name";s:22:"برای تست دوم";s:6:"amount";s:5:"70000";s:11:"description";s:37:"مجوز برای 2 تا 3 دامنه";}}'; // 执行反序列化操作 $deserializedArray = unserialize($serializedStr); // 打印结果查看 print_r($deserializedArray); ?>
关键注意点
- 字符编码处理:因为你的序列化字符串里包含波斯语字符,一定要确保PHP文件本身是UTF-8编码,同时通过
header()设置输出编码,避免出现乱码问题。 - 函数兼容性:
unserialize()是PHP核心内置函数,几乎所有PHP版本都支持,不需要额外安装任何扩展,直接调用即可。
运行这段代码后,你会得到一个包含两个元素的索引数组,每个元素又是一个关联数组,完全对应序列化字符串里存储的原始数据。
内容的提问来源于stack exchange,提问作者Mahdi98
相关产品推荐
相关产品推荐

