如何解析这个字符串:a:10:{1:0;s:7:“default”;i:1; ...?
我怎样才能读取这样的字符串?它们是什么意思?
a:10:{i:0;s:7:"默认";i:1;s:8:"故障安全";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";}
我见过很多使用这样的字符串的系统,将其存储在数据库中并解析以获取值。我怎样才能解析它们?
谢谢。
How can I read strings like that? What do they mean?
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";}
I've seen a lot of systems which use strings like that, stores it in the database and parse to get the values. How can I parse them?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是一个序列化的字符串。查看
var_dump(unserialize())
的结果。它不是有效的 JSON 格式字符串(json_decode()
将返回 null)。如果您想实际“读取”它而不反序列化它,您可以看到
"a:10"
表示具有 10 个索引的数组。“i:0”
表示“索引零”,并与相应的值以分号分隔(“s:7”
是长度为 7 的字符串)。这些值以逗号分隔。类也可以被序列化。This is a serialized string. Look at the results of
var_dump(unserialize())
. It is NOT a valid JSON-formatted string (json_decode()
will return null).If you want to actually "read" it without unserializing it, you can see
"a:10"
means array with 10 indices."i:0"
means "index zero" and is semicolon-separated with the corresponding value ("s:7"
is a string of length 7). The values are comma separated. Classes can also be serialized.它不是 JSON,而是序列化数组。使用
unserialize()
将其变成可用的东西。It's not JSON, it is a serialized array. Use
unserialize()
to turn it into something usable.