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


Posted in PHP onSeptember 14, 2016

本文实例讲述了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('a' => 1, 'b' => "三水点靠木", 'c' => 3, 'd' => 4, 'e' => 5));
$json = json_encode($arr);
function _format_json($json, $html = false) {
    $tabcount = 0;
    $result = '';
    $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 '{':
            $tabcount++;
            $result .= $char . $newline . str_repeat($tab, $tabcount);
            break;
          case '}':
            $tabcount--;
            $result = trim($result) . $newline . str_repeat($tab, $tabcount) . $char;
            break;
          case ',':
            $result .= $char . $newline . str_repeat($tab, $tabcount);
            break;
          case '"':
            $inquote = !$inquote;
            $result .= $char;
            break;
          case '\\':
            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 相关文章推荐
网页游戏开发入门教程二(游戏模式+系统)
Nov 02 PHP
PHP 实用代码收集
Jan 22 PHP
memcached 和 mysql 主从环境下php开发代码详解
May 16 PHP
PHP中替换换行符的几种方法小结
Oct 15 PHP
php抓取页面的几种方法详解
Jun 17 PHP
thinkphp 多表 事务详解
Jun 17 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
Jul 18 PHP
php获取twitter最新消息的方法
Apr 14 PHP
php修改数组键名的方法示例
Apr 15 PHP
Laravel接收前端ajax传来的数据的实例代码
Jul 20 PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
Apr 26 PHP
ThinkPHP中session函数详解
Sep 14 #PHP
PHP大神的十大优良习惯
Sep 14 #PHP
thinkPHP的表达式查询用法详解
Sep 14 #PHP
PHP实现对二维数组某个键排序的方法
Sep 14 #PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 #PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
Sep 14 #PHP
PHP自定义函数实现格式化秒的方法
Sep 14 #PHP
You might like
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
PHP实现Google plus的好友拖拽分组效果
2016/10/21 PHP
PHP错误和异常处理功能模块示例
2016/11/12 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
js函数使用技巧之 setTimeout(function(){},0)
2009/02/09 Javascript
用console.table()调试javascript
2014/09/04 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
JQUERY表单暂存功能插件分享
2016/02/23 Javascript
etmvc+jQuery EasyUI+combobox多值操作实现角色授权实例
2016/11/09 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
2018/05/08 Javascript
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
PHP webshell检查工具 python实现代码
2009/09/15 Python
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
2019/01/05 Python
Python帮你识破双11的套路
2019/11/11 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
python爬取招聘要求等信息实例
2020/11/20 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
美国顶级奢侈茶:Mighty Leaf Tea(美泰茶)
2016/11/26 全球购物
Marc Jacobs彩妆官网:Marc Jacobs Beauty
2017/07/03 全球购物
BIBLOO波兰:捷克的一家在线服装店
2018/03/09 全球购物
Lulu & Georgia官方网站:购买地毯、家具、抱枕、壁纸、床上用品等
2018/03/19 全球购物
Jones New York官网:美国女装品牌,受白领女性欢迎
2019/11/26 全球购物
马来西亚排名第一的宠物用品店:Pets Wonderland
2020/04/16 全球购物
网络体系结构及协议的定义
2014/03/13 面试题
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
总经理职责范文
2013/11/08 职场文书
大学生的网上创业计划书
2013/12/31 职场文书
社团活动总结
2014/04/28 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
优秀教师先进材料
2014/12/16 职场文书
失恋33天观后感
2015/06/11 职场文书
详解python的内存分配机制
2021/05/10 Python