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 相关文章推荐
PHP中在数据库中保存Checkbox数据(2)
Oct 09 PHP
小偷PHP+Html+缓存
Dec 20 PHP
PHP中=赋值操作符对不同数据类型的不同行为
Jan 02 PHP
简单的PHP多图上传小程序代码
Jul 17 PHP
php报表之jpgraph柱状图实例代码
Aug 22 PHP
如何用phpmyadmin设置mysql数据库用户的权限
Jan 09 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
Jul 01 PHP
PHP文件上传主要代码讲解
Sep 30 PHP
PHP信号量基本用法实例详解
Feb 12 PHP
laravel学习教程之存取器
Jul 30 PHP
PHP实现APP微信支付的实例讲解
Feb 10 PHP
php定期拉取数据对比方法实例
Sep 22 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
php中mysql模块部分功能的简单封装
2011/09/30 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
2014/04/28 PHP
PHP基于CURL进行POST数据上传实例
2014/11/10 PHP
jquery 插件学习(五)
2012/08/06 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
对于this和$(this)的个人理解
2013/09/08 Javascript
常用js字符串判断方法整理
2013/10/18 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
2017/01/13 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
Vue2.0 UI框架ElementUI使用方法详解
2017/04/14 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
js 中rewrap-ajax.js插件实例代码
2017/10/20 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
Vue.js自定义事件的表单输入组件方法
2018/03/08 Javascript
jQuery实现的别踩白块小游戏完整示例
2019/01/07 jQuery
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
在Python中用get()方法获取字典键值的教程
2015/05/21 Python
Python操作MongoDB详解及实例
2017/05/18 Python
python实现石头剪刀布小游戏
2021/01/20 Python
使用PYTHON解析Wireshark的PCAP文件方法
2019/07/23 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
2019/12/26 Python
使用Tensorflow将自己的数据分割成batch训练实例
2020/01/20 Python
css3实现文字首尾衔接跑马灯的示例代码
2020/10/16 HTML / CSS
Space NK英国站:英国热门美妆网站
2017/12/11 全球购物
高品质和独特的产品世界:Creations and Collections
2018/01/07 全球购物
FC-Moto西班牙:摩托车手最大的购物场所之一
2019/04/11 全球购物
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
薇姿法国官网:Vichy法国
2021/01/28 全球购物
写好自荐信要注意的问题
2013/11/10 职场文书
测绘工程个人的自我评价
2013/11/23 职场文书
计算机软件专业求职信
2014/06/10 职场文书
2015年食品安全工作总结
2015/05/15 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
阳光体育运动标语口号
2015/12/26 职场文书