一尘不染

json似乎启用,但无法运行json_encode

json

我的PHP版本是5.1.6,请按照以下说明安装Json:

# yum install php-devel
# yum install php-pear
# yum install gcc
# pear install json
# cd /etc/php.d
# echo "extension=json.so" > json.ini
# service httpd restart

现在,我检查是否启用了Json,但无法运行json_encode:

检查1:

[root@69-64-69-43 ~]# php -i | grep json

结果1:

/etc/php.d/json.ini,
json
json support => enabled
json version => 1.2.1

检查2:

[root@69-64-69-43 ~]# php -r 'var_dump(function_exists("json_encode"));'

结果2:

bool(true)

但是运行时:

Fatal error: Call to undefined function json_encode() in /var/www/vhosts/ykite.com/httpdocs/fre/json.php on line 8

这是运行链接:

检查Json:http :
//69.64.69.43/fre/json.php

php_info():http://69.64.69.43/fre/info.php

我当时确实在看并阅读了许多文档,但找不到这种情况的起因。

衷心感谢您的帮助。

ong


阅读 400

收藏
2020-07-27

共1个答案

一尘不染

如果var_dump( function_exists( 'json_encode' ) )返回true,则在HTTP请求中说该功能不存在。我只想到一种解释:CLI和HTTP请求使用不同的php.ini。在您的phpinfo( )文档中,它说它正在加载json.ini,但是我在那里看不到任何其他对JSON的引用。

检查您的日志,以查看是否在HTTP请求中实际加载了json.so。我敢打赌,事实并非如此。

2020-07-27