我的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
如果var_dump( function_exists( 'json_encode' ) )返回true,则在HTTP请求中说该功能不存在。我只想到一种解释:CLI和HTTP请求使用不同的php.ini。在您的phpinfo( )文档中,它说它正在加载json.ini,但是我在那里看不到任何其他对JSON的引用。
var_dump( function_exists( 'json_encode' ) )
phpinfo( )
检查您的日志,以查看是否在HTTP请求中实际加载了json.so。我敢打赌,事实并非如此。