【发布时间】:2011-03-25 10:48:52
【问题描述】:
我对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_encode的情况下向客户端返回一个json?
客户端浏览器中的网页将运行此 javascript 代码,以获取并检查该 json:
jQuery.ajax({ 'url': '...', ...,
'success':function(json) {
if(json != null && json.result == true) {
// do something
}
}
}
非常感谢!
更新
由于我无权升级任何东西或在该主机上安装新库,我唯一能做的就是更改代码。但我对 php 几乎一无所知,我也不知道如何使用 3rd 方库。最后,我将其修复为:
在php中:
echo '{"result":"true"}';
在javascript中:
if(json!=null && json.result=="true") {
// do something
}
【问题讨论】:
-
如果你可以安装PECL包,那么pecl.php.net/package/json或者pear.php.net/pepr/pepr-proposal-show.php?id=198有一个PEAR库
-
你看过 json_encode() 中的 cmets 了吗?这似乎很有希望,例如:php.net/manual/en/function.json-encode.php#100968
-
看起来你将不得不编写一个函数来完成这个功能。 uk2.php.net/json_encode