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