我想使用不使用引号的数据交换格式。也许是基于JSON的东西:
{param:value,param:value,param:{[{param:value,param:value}, {param:value,param:value}]}}
我应该如何在PHP中解析类似的内容。应该通过正则表达式来实现吗?
答案 0 :(得分:2)
让您的格式不使用引号有什么重要意义?有可能你可以改变其他东西以使这个要求消失(这会更好)。
至于使用正则表达式来解析类似JSON的格式, no 。这是一个 BAD 的想法;正则表达式从来没有真正用于解析像JSON这样的递归结构。至少你会遇到许多正则表达式匹配的问题,你需要用来尝试处理递归;在最坏的情况下,你会遇到试图解决如何匹配和解析递归的问题。
您提出的格式也有其自身的问题:您如何区分密钥值中的,
,{
或:
与实际{ {1}},,
或{
这是格式的一部分?你如何处理键或值名称中的空格?
答案 1 :(得分:1)
您可以使用XML而不使用任何属性。您还需要避免使用带引号的标题。
答案 2 :(得分:1)
为什么不使用JSON并利用可用的库和工具? This blog entry详细介绍了PHP中的JSON解析器。
要处理JSON数据,有JSON PHP中的扩展可用 在PHP 5.2.0之后。两个功能: json_encode()和json_decode()是 非常有用的转换和解析 通过PHP实现JSON数据。
当有许多定义明确且经过良好测试的选项(JSON,XML,Google Protocol Buffers,YAML)时,创建另一种格式似乎是重复且容易出错的。