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定时删除文件夹下文件(清理缓存文件)
Jan 23 PHP
深入php 正则表达式的学习探讨
Jun 06 PHP
php通过function_exists检测函数是否存在的方法
Mar 18 PHP
PHP中使用BigMap实例
Mar 30 PHP
php计算整个mysql数据库大小的方法
Jun 19 PHP
thinkPHP实现将excel导入到数据库中的方法
Apr 22 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
Nov 05 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
Jan 24 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
Apr 27 PHP
简单谈谈PHP面向对象之标识对象
Jun 27 PHP
php代码调试利器firephp安装与使用方法分析
Aug 21 PHP
ThinkPHP5与单元测试PHPUnit使用详解
Feb 23 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
phpword插件导出word文件时中文乱码问题处理方案
2014/08/19 PHP
php模拟用户自动在qq空间发表文章的方法
2015/01/07 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
通过js动态操作table(新增,删除相关列信息)
2012/05/23 Javascript
Javascript操作URL函数修改版
2013/11/07 Javascript
js用Date对象的setDate()函数对日期进行加减操作
2014/09/18 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
JavaScript动态添加列的方法
2015/03/25 Javascript
jQuery实现可展开合拢的手风琴面板菜单
2015/09/15 Javascript
轻松学习jQuery插件EasyUI EasyUI创建CRUD应用
2015/11/30 Javascript
NodeJS连接MongoDB数据库时报错的快速解决方法
2016/05/13 NodeJs
H5图片压缩与上传实例
2017/04/21 Javascript
jQuery接受后台传递的List的实例详解
2017/08/02 jQuery
JavaScript文件的同步和异步加载的实现代码
2017/08/19 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
vue实现百度搜索功能
2020/12/28 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
2019/11/09 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
2020/07/01 Javascript
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
详解Python中的分组函数groupby和itertools)
2018/07/11 Python
使用python读取.text文件特定行的数据方法
2019/01/28 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
Python __slots__的使用方法
2020/11/15 Python
python3中for循环踩过的坑记录
2020/12/14 Python
JYSK加拿大:购买家具、床垫、家居装饰等
2020/02/14 全球购物
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
建筑学推荐信
2013/11/03 职场文书
汽车制造与装配专业自荐信范文
2014/01/02 职场文书
校园创业策划书
2014/01/14 职场文书
大型车展策划方案
2014/02/01 职场文书
实习单位鉴定评语
2014/04/26 职场文书
学校志愿者活动总结
2014/06/27 职场文书
检讨书1000字
2014/10/11 职场文书
《给予树》教学反思
2016/03/03 职场文书