php5.2以下版本无json_decode函数的解决方法_php技巧

今天写代码的时候,需要用到json_decode函数,发现php5.2以前的版本没有集成这个函数,不过我们可以通过自定义函数实现。

复制代码 代码如下:

function json_decode2($json)
{
$comment = false;
$out = '$x=';

for ($i=0; $i<strlen($json); $i++)
{
if (!$comment)
{
if (($json[$i] == '{') || ($json[$i] == '[')) $out .= ' array(';
else if (($json[$i] == '}') || ($json[$i] == ']')) $out .= ')';
else if ($json[$i] == ':') $out .= '=>';
else $out .= $json[$i];
}
else $out .= $json[$i];

if ($json[$i] == '"' && $json[($i-1)]!="\\") $comment = !$comment;
}

    eval($out . ';');
return $x;
}

不过这个返回的是Array

要返回object 则要用到 service_json类了

时间: 2025-01-29 23:26:33

php5.2以下版本无json_decode函数的解决方法_php技巧的相关文章

php5.3 不支持 session_register() 此函数已启用的解决方法_php技巧

php从5.2.x升级到5.3.2.出来问题了.有些原来能用的程序报错了.报错内容是Deprecated: Function session_register() is deprecated查了一下是5.3这个session_register就不让用了,降回去?不爽.搜了一把,有个解决方法是写一个函数 复制代码 代码如下: <?php // Fix for removed Session functions function fix_session_register(){ function se

PHP中遇到BOM、&amp;lt;feff&amp;gt;编码导致json_decode函数无法解析问题_php技巧

昨天同事遇到一个奇怪的问题,就是以下代码,无法通过JSON校验,也无法通过PHP的json_decode函数解析. 复制代码 代码如下: [     {         "title": "",         "pinyin": ""     } ] 可能聪明的你已经猜到其中包含有不看见的特殊字符,在vim下查看: 复制代码 代码如下: [     {         <feff>"title&quo

php5.3提示Function ereg() is deprecated Error问题解决方法_php技巧

本文实例讲述了php5.3提示Function ereg() is deprecated Error问题解决方法.分享给大家供大家参考.具体实现方法如下: 一.问题: PHP 5.3 ereg() 无法正常使用,提示"Function ereg() is deprecated Error"是因为它长ereg 函数进行了升级处理,需要像preg_match使用/ /来规则了,当然也是php5.3把ereg给废掉的节奏了. PHP 5.3 ereg() 无法正常使用,提示"Fun

php5中date()得出的时间为什么不是当前时间的解决方法_php技巧

相关设置是修改php.ini中的 date.timezone 参数: [Date] ; Defines the default timezone used by the date functions ;date.timezone = 默认是关闭的,只需把注释去掉,改为即可 [Date] ; Defines the default timezone used by the date functions date.timezone = PRC 其中PRC是"中华人民共和国"! 其他选项可以

php5.3不能连接mssql数据库的解决方法_php技巧

本文实例讲述了php5.3不能连接mssql数据库的解决方法.分享给大家供大家参考.具体分析如下: 自从php5.3之后系统就不支持mssql_connect这个函数连接了,以前我也讲可以使用com接口来实现,现在我再介绍解决php5.3不能连接mssql数据库另一方法. windows系统下,PHP5.3以上的版本已经不支持mssql扩展. 首先http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx 点击 get it 下载SQLSRV2

ECSHOP在PHP5.5及高版本上报错的解决方法_php实例

Ecshop却没来得及修改,如果在高版本的php虚拟主机上安装ecshop程序,出现兼容性问题. 小编在本地环境php5.5上安装出现以下两种报错提示: Only variables should be passed by reference php Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead-? 通过在网络上查找,小编发现并不是只能在低版本的php中安装

php5.4以下版本json不支持不转义内容中文的解决方法_php技巧

本文实例讲述了php5.4以下版本json不支持不转义内容中文的解决方法.分享给大家供大家参考.具体分析如下: 写ERP接口的时候遇到JAVA方接收这种json_encode后的内容 复制代码 代码如下: {"orderCode":"1401160935542399","creator":"\u751f\u6d3b\u7528\u54c1\u6d4b\u8bd5\u5c0f\u5c4b"} 其中"creator&qu

php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法_php技巧

本文实例讲述了php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法.分享给大家供大家参考,具体如下: 微信支付api.mch.weixin.qq.com域名解析慢了,导致付款时非常的慢,那么要如何来解决微信支付慢的问题呢,这里就来一起分析一下. 有朋友在阿里云主机实现微信支付逻辑时,发现api.mch.weixin.qq.com的解析实在是太慢了. 因此出现了手动修改/etc/hosts的情况,当然了,哪天微信支付要是换个机房肯定要挂. 我们的机房也有相似的同题,专

php中array_column函数简单实现方法_php技巧

本文实例讲述了php中array_column函数简单实现方法.分享给大家供大家参考,具体如下: php中的array_column()可返回输入数组中某个单一列的值. 示例: <?php // 从数据库中返回数组: $a = array( array( 'id' => 0015, 'age' => '20', 'name' => 'Tom', ), array( 'id' => 0016, 'age' => '21', 'name' => 'Jack', ),