有什么理由我应该选择 JSON 而不是 XML,或者如果两者都可用,反之亦然?在处理数据馈送时优化性能的提示也值得赞赏!
4 回答
谈到 PHP,我选择 XML 而不是 JSON 的一个原因是,即使在 PHP 5 中,也没有官方支持的用于遍历的 API。你可以编码,你可以解码,就是这样。没有验证,没有有效的方法来遍历键/值对,总而言之,对它的支持很少。不要误会我的意思,你可以只使用一个foreach循环结构,但它确实很麻烦。JSON 被吹捧为一种出色的数据交换格式,因为 JavaScript 很容易理解词法结构。所以当你从 PHP 转到 JavaScript 时,它很棒,但是当你从 JavaScript 转到 PHP,或者从 PHP 转到 PHP 时,JSON 并不是数据交换的最佳选择。
我自己会使用 JSON,只是因为 XML 非常臃肿且难以解析。JSON 小而整洁,因此可以节省带宽,并且还应该加快响应时间,因为它更容易生成、传输更快、解码更快。
无论你选择哪种方式,当你选择为 IO 序列化数据时,序列化机制应该是透明的、可替换的。如果您发现 JSON 不适合您,您应该能够交换您在正面和背面使用的序列化程序,并且您的数据结构保持不变。
也就是说,我传输的大多数数据数组只是大键值树。我发现当我的数据结构未包装在 XML 序列化中时,它们更容易阅读原始数据结构。
关于 file_get_contents() 与 cURL 的性能,我相信 cURL 会稍微快一些。对于您的应用程序,您可以运行一些快速基准测试来比较这两种方法。
更重要的是,我更喜欢 cURL,因为 file_get_contents() 不能在实现了更高级别安全性的 PHP 环境中工作(例如,allow_url_fopen设置通常被禁用)。如果您的应用程序只能在您自己的环境(由您控制)上运行,那么 file_get_contents() 就可以了,否则我会使用 cURL 以实现可移植性。