php 5.1.6 json_encode和codeigniter

时间:2010-05-24 21:39:01

标签: php json codeigniter

我正在建立一个codeigniter应用程序,它使用json_encode在很多地方提供ajax数据......今天我了解到服务器有php 5.1.6,它不支持这种方法(或json_decode)..我该怎么办?请帮忙。

5 个答案:

答案 0 :(得分:8)

upgradephp中有json_encode()的模拟。只需包含()该脚本,您就不需要重写任何内容 作为替代方案,您可以使用PEAR::PHP_Compat。 IIRC也有这样的模仿。
(有further替代实现浮动;但通常是对象样式,而不是设计用来模拟核心功能。)

您可以使用auto_prepend_file=进行设置。如果您只想启用JSON扩展,当然还有其他来源。

答案 1 :(得分:2)

如果CodeIgniter可以使用它而不是PHP 5.2的json_ *函数,你可以使用Services_JSON - 我知道Zend_Framework有Zend_Json,它使用json_ *函数(如果可用),否则它在userland PHP代码中使用它自己的实现作为后备。 / p>

当然,如果您可以访问服务器来编译PHP,那么您可以尝试扩展或升级到PHP 5.2(更好的解决方案)。

编辑:我会采用上面提到的兼容性层的路线。

答案 2 :(得分:0)

json_decode 是自(PHP 5> = 5.2.0,PECL json> = 1.2.0)后添加的,你的版本也支持它,你应该给一试:)

答案 3 :(得分:0)

我需要json_encode和json_decode用于jquery网格。 我尝试了upgradephp,但json_encode似乎没有使用jquery网格,所以我从文件中删除了该函数并添加了this one。 json_decode似乎工作得很好。

答案 4 :(得分:0)

实际上,5.1.6支持json_decode和json_encode,但它们可能有点奇怪。就像在,如果你提供无效的JSON,例如,如果你有一个空白的密钥,它将死亡,没有任何警告或错误。但我每天都在5.1.6环境中使用json_encode和json_decode。这完全有可能。