PHP自定义函数格式化json数据实例

墨辰丷
发布: 2023-03-28 22:50:01
原创
1531 人浏览过

这篇文章主要介绍了PHP自定义函数格式化json数据的方法,结合实例形式分析了php通过自定义函数进行字符串与数组的遍历、转换、计算等操作实现json数据格式化的功能,需要的朋友可以参考下

具体如下:

<?php
  /**
   * Formats a JSON string for pretty printing
   *
   * @param string $json The JSON to make pretty
   * @param bool $html Insert nonbreaking spaces and <br />s for tabs and linebreaks
   * @return string The prettified output
   */
$arr = array("ret"=>0,"data"=>array(&#39;a&#39; => 1, &#39;b&#39; => "脚本之家", &#39;c&#39; => 3, &#39;d&#39; => 4, &#39;e&#39; => 5));
$json = json_encode($arr);
function _format_json($json, $html = false) {
    $tabcount = 0;
    $result = &#39;&#39;;
    $inquote = false;
    $ignorenext = false;
    if ($html) {
      $tab = "   ";
      $newline = "<br/>";
    } else {
      $tab = "\t";
      $newline = "\n";
    }
    for($i = 0; $i < strlen($json); $i++) {
      $char = $json[$i];
      if ($ignorenext) {
        $result .= $char;
        $ignorenext = false;
      } else {
        switch($char) {
          case &#39;{&#39;:
            $tabcount++;
            $result .= $char . $newline . str_repeat($tab, $tabcount);
            break;
          case &#39;}&#39;:
            $tabcount--;
            $result = trim($result) . $newline . str_repeat($tab, $tabcount) . $char;
            break;
          case &#39;,&#39;:
            $result .= $char . $newline . str_repeat($tab, $tabcount);
            break;
          case &#39;"&#39;:
            $inquote = !$inquote;
            $result .= $char;
            break;
          case &#39;\\&#39;:
            if ($inquote) $ignorenext = true;
            $result .= $char;
            break;
          default:
            $result .= $char;
        }
      }
    }
    return $result;
  }
echo _format_json($json);
/*
{
  "ret": 0,
  "data": {
    "a": 1,
    "b": "\u811a\u672c\u4e4b\u5bb6",
    "c": 3,
    "d": 4,
    "e": 5
  }
}
**/
?>
登录后复制

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

php实现URL加密解密

PHP读取zip文件的方法

PHP版单点登陆实现方案

以上是PHP自定义函数格式化json数据实例的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!