这是什么样的绳子?如何取消此字符串的序列化


What kind of string is this? How do I unserialize this string?

这是哪种字符串?如何取消它的序列化并从中取出数组?

a:2:{i:0;s:7:"Abogado";i:1;s:7:"Notario";}

这是一个序列化的字符串。您可以使用以下函数取消序列化: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())。

我使用了这个:

$argument = 'a:2:{i:0;s:7:"Abogado";i:1;s:7:"Notario";}';
$arr = unserialize(urldecode($argument));
print_r($arr);