php 5.1.6 json_encode 和 codeigniter
Posted
技术标签:
【中文标题】php 5.1.6 json_encode 和 codeigniter【英文标题】:php 5.1.6 json_encode and codeigniter 【发布时间】:2011-02-23 10:30:14 【问题描述】:我正在构建一个使用 json_encode 在许多地方提供 ajax 数据的 codeigniter 应用程序......今天我了解到服务器有 php 5.1.6,它不支持这种方法(或 json_decode).. 我该怎么办?请帮忙。
【问题讨论】:
【参考方案1】:upgradephp 中有一个 json_encode() 的模拟。只需包含()该脚本,您无需重写任何内容。 作为替代方案,您可以使用PEAR::PHP_Compat。 IIRC 它也有一个模拟。 (有further 替代实现浮动;但通常是对象样式的,速度不快,旨在模拟核心功能。)
您甚至可以使用auto_prepend_file=
设置它们。如果您只想启用 JSON 扩展,当然还有其他来源。
【讨论】:
好吧,我不知道那些存在。感谢您指出它们,我所拥有的经验是 Services_JSON 和 Zend_Json。 pear.php.net/package/PHP_Compat 有更好的代码,你可以只挑选你需要的任何功能;但目前还不够完整。实际上我认为 Zend_Json 更适合开发,因为它有错误报告。原生 PHP json_decode() 没有的地方。 那个 upgradephp 链接是黄金!【参考方案2】:如果 CodeIgniter 可以使用 Services_JSON 而不是 PHP 5.2 的 json_* 函数,您可以使用它 - 我知道 Zend_Framework 有 Zend_Json,它使用 json_* 函数(如果可用),否则它在用户级 PHP 代码中使用自己的实现作为后备。
当然,如果您可以访问服务器编译 PHP,您可以尝试扩展或升级到 PHP 5.2(更好的解决方案)。
编辑:我会采取上述兼容层的路线。
【讨论】:
【参考方案3】:json_decode
被添加是因为 (PHP 5 >= 5.2.0, PECL json >= 1.2.0),你的版本也支持它,你应该试一试: )
【讨论】:
【参考方案4】:我需要 json_encode 和 json_decode 用于 jquery 网格。 我尝试了 upgradephp,但 json_encode 似乎不适用于 jquery 网格,所以我从文件中删除了该函数并添加了this one。 json_decode 似乎工作得很好。
【讨论】:
【参考方案5】:事实上,5.1.6 支持 json_decode 和 json_encode,但它们可能有点奇怪。就像,如果你给它输入无效的 JSON,比如你有一个空白键,它就会死而没有任何警告或错误。但是我在 5.1.6 的环境中每天都使用 json_encode 和 json_decode。完全有可能。
【讨论】:
以上是关于php 5.1.6 json_encode 和 codeigniter的主要内容,如果未能解决你的问题,请参考以下文章
php中json_encode和json_decode的用法
PHP中json_encode()使用须知,JSON数组和JSON对象