我怎样才能阅读这样的字符串?他们是什么意思?
a:10:{i:0;s:7:"default";i:1;s:8:"failsafe";i:2;s:4:"foaf";i:3;s:4:"ical";i:4;s:2:"js";i:5;s:4:"json";i:6;s:6:"opendd";i:7;s:3:"php";i:8;s:3:"rss";i:9;s:3:"xml";}
我见过很多使用这种字符串的系统,将它存储在数据库中并解析以获取值。我该如何解析它们?
感谢。
答案 0 :(得分:8)
这是一个序列化的字符串。查看var_dump(unserialize())
的结果。它不是有效的JSON格式的字符串(json_decode()
将返回null)。
如果你想在没有反序列化的情况下实际“读取”它,你可以看到"a:10"
表示包含10个索引的数组。 "i:0"
表示“索引零”,并以相应的值分隔分号("s:7"
是一个长度为7的字符串)。值以逗号分隔。类也可以序列化。
答案 1 :(得分:7)
它不是JSON,它是一个序列化数组。使用unserialize()
将其变为可用的内容。