Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP5.1中解码json?_Php_Json_Parsing - Fatal编程技术网

如何在PHP5.1中解码json?

如何在PHP5.1中解码json?,php,json,parsing,Php,Json,Parsing,json_解码函数不是PHP5.1的一部分,所以我不能使用它。此版本还有其他功能吗?在PHP5.2之前,您可以使用 事实上,它是集成到PHP5.2()中的扩展: 从PHP5.2.0开始,JSON扩展是 通过 默认 其他一些解决方案是使用PHP开发的组件 一段时间前(大约一年前),我用PHP5.1使用了 即使Zend Framework需要PHP5.2,也可以提取该组件(我认为它只依赖于另一个组件——可能是Zend_Exception,或者类似的东西)——一年前,它还可以与PHP5.1一起使用

json_解码函数不是PHP5.1的一部分,所以我不能使用它。此版本还有其他功能吗?

在PHP5.2之前,您可以使用

事实上,它是集成到PHP5.2()中的扩展:

从PHP5.2.0开始,JSON扩展是 通过 默认


其他一些解决方案是使用PHP开发的组件

一段时间前(大约一年前),我用PHP5.1使用了

即使Zend Framework需要PHP5.2,也可以提取该组件(我认为它只依赖于另一个组件——可能是
Zend_Exception
,或者类似的东西)——一年前,它还可以与PHP5.1一起使用



还链接到几个基于PHP或面向PHP的组件——您可能想看看这个列表。

Zend框架有Zend_Json。至少几年前是这样

您只需取出JSON库并以独立的方式使用它。

code
您看到此错误是因为您的php版本早于5.2.0。这些函数在PHP5.2.0及更高版本中

PHP Fatal error:  Call to undefined function json_encode()
您可以通过运行以下命令:

pecl install json
它将编译,然后将其添加到您的
php.ini
文件中:(我的文件位于
/etc/php5/apache2


然后重新启动apache。

我在运行PHP5.1.6时遇到了同样的问题,但我无法在客户端服务器上升级或安装扩展。更糟糕的是,当我需要解决方案时,JSON.org网站关闭了,但幸运的是,谷歌代码上的这个文件工作得非常好!我更愿意实际定义json_encode/json_decode,但调用fromJSON()效果很好


在我的服务器上,我无法安装JSON PECL扩展,因为它会导致另一个应用程序中使用的zend_JSON出现问题。所以我发现这个脚本非常好用

jsonwrapper:PHP5.x早期版本的json_编码

PHP5.2添加了
json_encode
函数,该函数将几乎所有PHP数据结构转换为有效的JavaScript代码。散列,数组,散列数组,随便什么

不幸的是,许多Linux发行版仍然附带PHP5.1.x

如果缺少jsonwrapper,它将实现
json_encode
函数,如果已经存在,则不使用它因此它很好地与未来兼容。

只需添加:

require 'jsonwrapper.php';

我在PHP 5.1.3上遇到了服务Json扩展问题,因此我找到了以下库:


它位于LGPL下,快速查看后似乎不会评估输入。

您可以使用jsonwrapper

如果缺少json_encode函数,jsonwrapper将实现该函数,并且 如果它已经存在,就不要使用它。所以很好 未来兼容

请在此下载:

要使用just do:

require ("jsonwrapper.php");


$data = array('idx1' => 'foo', 'idx2' => 'bar');

echo json_encode($data);

echo json_decode($data);

Thanx,我如何安装它,它没有相关文档,它只链接到php站点,上面说不需要安装它,因为它是php的一部分。安装PECL扩展,至少在Linux系统上,通常非常简单:
PECL install json
;请注意,您可能需要发行版中的一些“dev”包;;;如果您需要更改默认的php5 json,请尝试一下,这可能也是一个有趣的问题。不知道为什么会有人这样做。虽然这可能不如PECL解决方案好,但它仍然是一个有效的选择。感谢您的推荐。公平地说,我不能责怪simplejson.php的作者对其函数进行了不同的命名,因为它们的签名与内置的签名不匹配。然而,我可以责怪他
eval()
JSON字符串一旦被构造就被破坏了!这段代码可以被利用。后来我发现Services_Json工作得很好,问题是服务器上有神奇的引号,这弄乱了POST发送的Json字符串。
require 'jsonwrapper.php';
require ("jsonwrapper.php");


$data = array('idx1' => 'foo', 'idx2' => 'bar');

echo json_encode($data);

echo json_decode($data);