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 相关文章推荐
BBS(php &amp; mysql)完整版(六)
Oct 09 PHP
什么是MVC,好东西啊
May 03 PHP
PHP session会话的安全性分析
Sep 08 PHP
php实现utf-8和GB2312编码相互转换函数代码
Feb 07 PHP
php多文件上传功能实现原理及代码
Apr 18 PHP
php缓冲 output_buffering和ob_start使用介绍
Jan 30 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(一)
Jun 23 PHP
PHP类的反射用法实例
Nov 03 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
Smarty简单生成表单元素的方法示例
May 23 PHP
php中的登陆login实例代码
Jun 20 PHP
php使用Jpgraph创建折线图效果示例
Feb 15 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
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
php搜索文件程序分享
2015/10/30 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
2019/05/20 PHP
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
2015/09/15 Javascript
基于javascript实现样式清新图片轮播特效
2016/03/30 Javascript
javascript简易画板开发
2020/04/12 Javascript
AngularJS中isolate scope的用法分析
2016/11/22 Javascript
JavaScript使用链式方法封装jQuery中CSS()方法示例
2017/04/07 jQuery
bootstrap modal+gridview实现弹出框效果
2017/08/15 Javascript
ES6中字符串string常用的新增方法小结
2017/11/07 Javascript
快速解决vue-cli不能初始化webpack模板的问题
2018/03/20 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
利用原生JS实现data方法示例代码
2019/05/28 Javascript
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
[02:23]2016国际邀请赛中国区预选赛wings晋级之路
2016/06/29 DOTA
Python多线程编程(二):启动线程的两种方法
2015/04/05 Python
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
利用Python抓取行政区划码的方法
2016/11/28 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
2017/05/19 Python
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
python爬虫使用requests发送post请求示例详解
2020/08/05 Python
基于PyTorch中view的用法说明
2021/03/03 Python
aden + anais官方网站:婴儿襁褓、毯子、尿布和服装
2017/06/21 全球购物
英国和世界各地鲜花速递专家:Arena Flowers
2018/02/10 全球购物
店长岗位职责
2013/11/21 职场文书
秘书专业自荐信范文
2013/12/26 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
赔偿协议书
2015/01/27 职场文书
试用期解除劳动合同通知书
2015/04/16 职场文书
校园歌手大赛主持词
2015/07/03 职场文书
运动会广播稿100字
2015/08/19 职场文书