微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

没有json_encode,如何将数组编码为JSON?

如何解决没有json_encode,如何将数组编码为JSON?

首先:您应该 强烈 考虑升级,因为不再支持PHP 5.1.x和5.2.x。您表示您没有这样做的权利,但是如果您是付费客户,那应该有所帮助。从最新的PHP 5.3.6版本开始不推荐使用PHP 5.2 。

PHP.net上的用户提供了执行相同功能自定义函数。您可以将其重命名json_decode()并将其包装在一条if (!function_exists('json_encode'))语句中:

if (!function_exists('json_encode')) {
     function json_encode() {
         // do stuff
     }
}

解决方法

我对PHP非常陌生,但是现在我必须帮助我的朋友解决PHP问题。

他购买了一个基于PHP的网站,将其上传到主机后,发现错误:

Fatal error:  Call to undefined function json_encode() in xxx.php

代码很简单:

echo json_encode(array(
    'result' => true,));

它发送一个json到客户端。

我知道json_encode是在php 5.2之后添加的,但是他的主机的PHP版本是PHP 5.1.2,所以这就是它报告错误的原因。

但是我们无权升级主机的PHP版本,因此我必须修改代码。如何让它不带JSON返回客户端json_encode

客户端浏览器中的网页将运行以下javascript代码,以获取并检查json:

jQuery.ajax({ 'url': '...',...,'success':function(json) {
        if(json != null && json.result == true) {
           // do something
        }
    }
}

非常感谢!


更新

由于我无权升级任何东西或在该主机上安装新库,因此我唯一能做的就是更改代码。但是我几乎对php一无所知,我也不知道如何使用3rd
party库。最后,我将其修复为:

在php中:

echo '{"result":"true"}';

在javascript中:

if(json!=null && json.result=="true") {
    // do something
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。