这是什么字符串?我如何反序列化并从中获取数组呢?
a:2:{i:0;s:7:"Abogado";i:1;s:7:"Notario";}
答案 0 :(得分:5)
这是一个序列化的字符串。您可以使用此函数对其进行反序列化:unserialize()
,如下所示:
$str = 'a:2:{i:0;s:7:"Abogado";i:1;s:7:"Notario";}';
print_r(unserialize($str));
输出:
Array ( [0] => Abogado [1] => Notario )
旁注:
手册中的引用:
警告:强> 如果出现错误并且反序列化序列化的FALSE值,则返回FALSE。 可以通过比较str与serialize(false)或捕获已发布的E_NOTICE 来捕获此特殊情况。
警告:强> 不要将不受信任的用户输入传递给unserialize()。 反序列化可能导致代码由于对象实例化和自动加载而被加载和执行,恶意用户可能会利用此。如果需要将序列化数据传递给用户,请使用安全的标准数据交换格式,例如JSON(通过json_decode()和json_encode())。
答案 1 :(得分:-1)
我用过这个:
$argument = 'a:2:{i:0;s:7:"Abogado";i:1;s:7:"Notario";}';
$arr = unserialize(urldecode($argument));
print_r($arr);