arrays - 如何解析这个未知的数组表示法?这个数组表示法来自什么语言?
问题描述
我正在访问旧数据库中的数据,其中一些记录具有此数组表示法,它定义了房地产搜索的标准。有几百个,我需要将它们转换为我可以在 JS 和 PHP 中使用的数据。
这是数组表示法的示例。我还没有找到任何其他关于这种格式的问题。
a:14:{s:2:"id";s:22:"our-listings-metrolist";s:3:"map";a:4:{s:8:"latitude";s:17:"38.93309311783631";s:9:"longitude";s:19:"-120.74187943878752";s:4:"zoom";s:1:"8";s:4:"open";s:1:"0";}s:4:"feed";s:15:"ncarmetrolistca";s:6:"panels";a:2:{s:9:"office_id";a:3:{s:7:"display";s:1:"1";s:9:"collapsed";s:1:"0";s:6:"hidden";s:1:"0";}s:4:"type";a:3:{s:7:"display";s:1:"1";s:9:"collapsed";s:1:"0";s:6:"hidden";s:1:"0";}}s:9:"office_id";s:5:"01PHA";s:11:"search_type";s:0:"";s:3:"idx";s:15:"ncarmetrolistca";s:14:"search_subtype";s:0:"";s:10:"snippet_id";s:22:"our-listings-metrolist";s:13:"snippet_title";s:42:"Our Sacramento / Sierra Foothills Listings";s:10:"page_limit";s:1:"6";s:7:"sort_by";s:17:"DESC-ListingPrice";s:4:"view";s:4:"grid";s:12:"price_ranges";s:4:"true";}
这并不难理解,如果需要,我会编写自己的解析器,但我希望我不需要。a
定义一个数组,s
定义一个字符串,并i
定义一个整数。每个定义字符后面的整数定义数组、字符串或整数的长度,然后是在该位置定义的值,表示键或值。
这是什么符号?有没有办法可以快速将其解析为可以在 JS 和 PHP 中使用的格式。我需要构建自己的解析器吗?
解决方案
这就是 php 中对象的序列化。
例如:
$obj = ['a'=>1, 'b'=>true, 'c'=>'foo'];
echo serialize($obj); /* prints: a:3:{s:1:"a";i:1;s:1:"b";b:1;s:1:"c";s:3:"foo";} */
要反序列化,只需使用该unserialize()
函数。
推荐阅读
- c# - 登录用户没有权限时如何返回401页面而不是登录页面,cookie asp.net框架
- kubernetes - AKS 错误 - 无法连接到服务器:x509:证书由未知机构签名
- java - 在 Java 中添加空格
- javascript - 扁平化对象值的最佳/最有效方法是什么?
- git - git rebase --onto 永远不会超过倒带头
- java - 有没有办法加载(PlantUML-)生成的图像,而不保存到文件系统?
- flutter - 我可以在包 qrscan flutter 中编辑图标吗?
- python - 为什么 skimage.euler_number 给我欧拉数 1,但根据公式它应该给我 2
- javascript - 附加本地存储
- c# - discord.net.commands.dll 未找到或缺少程序集文件