千家信息网

php语言中json实现的示例分析

发表于:2025-11-17 作者:千家信息网编辑
千家信息网最后更新 2025年11月17日,小编给大家分享一下php语言中json实现的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php语言的json实现
千家信息网最后更新 2025年11月17日php语言中json实现的示例分析

小编给大家分享一下php语言中json实现的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

php语言的json实现

由于开发一个ajax file manager for web开源项目,数据交换使用的json格式,后来发现在低版本的php上运行会有问题,仔细调试发现json_decode和json_encode无法正常工作,于是查阅资料,发现低版本的php没有实现这两个函数,为了兼容性,我只好自己实现一个php版的json编码解码代码,并保证和json2.js的一致,测试调试并通过,现在将其公布出来,供有相同需求的同学使用:

 )     {       $result = (array) json_decode($json);     }     else     {       $json = str_replace(array("\\\\", "\\\""), array("&#;", "&#;"), $json);       $parts = preg_split("@(\"[^\"]*\")|([\[\]\{\},:])|\s@is", $json, -, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);       foreach ($parts as $index => $part)       {         if (strlen($part) == )         {           switch ($part)           {             case "[":             case "{":               $parts[$index] = "array(";               break;             case "]":             case "}":               $parts[$index] = ")";               break;             case ":":               $parts[$index] = "=>";               break;             case ",":               break;             default:               break;           }         }       }       $json = str_replace(array("&#;", "&#;", "$"), array("\\\\", "\\\"", "\\$"), implode("", $parts));       $result = eval("return $json;");     }   }   catch (Exception $e)   {     $result = array("error" => $e->getCode());   }   return $result; } function valueTostr($val) {   if (is_string($val))    {     $val = str_replace('\"', "\\\"", $val);     $val = str_replace("\\", "\\\\", $val);     $val = str_replace("/", "\\/", $val);     $val = str_replace("\t", "\\t", $val);     $val = str_replace("\n", "\\n", $val);     $val = str_replace("\r", "\\r", $val);     $val = str_replace("\b", "\\b", $val);     $val = str_replace("\f", "\\f", $val);     return '"' . $val . '"';   }   elseif (is_int($val))     return sprintf('%d', $val);   elseif (is_float($val))     return sprintf('%F', $val);   elseif (is_bool($val))     return ($val ? 'true' : 'false');   else     return 'null'; } function jsonEncode($arr) {   $result = "{}";   try   {     if (PHP_VERSION_ID > )     {       $result = json_encode($arr);     }     else     {       $parts = array();       $is_list = false;       if (!is_array($arr))       {         $arr = (array) $arr;       }       $end = count($arr) - ;       if (count($arr) > )       {         if (is_numeric(key($arr)))         {           $result = "[";            for ($i = ; $i < count($arr); $i++)           {             if (is_array($arr[$i]))             {               $result = $result . jsonEncode($arr[$i]);             }             else             {               $result = $result . valueTostr($arr[$i]);             }             if ($i != $end)             {               $result = $result . ",";             }           }           $result = $result . "]";         }         else         {           $result = "{";            $i = ;           foreach ($arr as $key => $value)           {             $result = $result . '"' . $key . '":';             if (is_array($value))             {               $result = $result . jsonEncode($value);             }             else             {               $result = $result . valueTostr($value);             }             if ($i != $end)             {               $result = $result . ",";             }             $i++;           }           $result = $result . "}";         }       }       else       {         $result = "[]";       }     }   }   catch (Exception $e)   {   }   return $result; } ?>

以上是"php语言中json实现的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0