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 相关文章推荐
支持oicq头像的留言簿(二)
Oct 09 PHP
PR值查询 | PageRank 查询
Dec 20 PHP
php 用sock技术发送邮件的函数
Jul 21 PHP
IIS6.0中配置php服务全过程解析
Aug 07 PHP
php根据分类合并数组的方法实例详解
Nov 06 PHP
ThinkPHP3.1之D方法实例详解
Jun 20 PHP
PHP中使用imagick生成PSD文件缩略图教程
Jan 26 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 PHP
thinkphp3.2.3 分页代码分享
Jul 28 PHP
PHP连接MySQL数据库并以json格式输出
May 21 PHP
PHP Include文件实例讲解
Feb 15 PHP
Laravel第三方包报class not found的解决方法
Oct 13 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
第七节--类的静态成员
2006/11/16 PHP
深入分析php中接口与抽象类的区别
2013/06/08 PHP
使用PHP curl模拟浏览器抓取网站信息
2013/10/28 PHP
PHP中字符与字节的区别及字符串与字节转换示例
2016/10/15 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
php中yar框架实例用法讲解
2020/12/27 PHP
jQuery1.6 使用方法二
2011/11/23 Javascript
简单的Jquery遮罩层代码实例
2013/11/14 Javascript
node.js中的fs.fsyncSync方法使用说明
2014/12/15 Javascript
jQuery中find()方法用法实例
2015/01/07 Javascript
完美解决js传递参数中加号和&amp;号自动改变的方法
2016/10/11 Javascript
探索webpack模块及webpack3新特性
2017/09/18 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
Vue利用Blob下载原生二进制数组文件
2019/09/25 Javascript
vue-quill-editor插入图片路径太长问题解决方法
2021/01/08 Vue.js
python根据时间生成mongodb的ObjectId的方法
2015/03/13 Python
python将MongoDB里的ObjectId转换为时间戳的方法
2015/03/13 Python
Python编程中对super函数的正确理解和用法解析
2016/07/02 Python
Linux下远程连接Jupyter+pyspark部署教程
2019/06/21 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
tensorflow 实现自定义layer并添加到计算图中
2020/02/04 Python
超全Python图像处理讲解(多模块实现)
2020/04/13 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
Python3读写ini配置文件的示例
2020/11/06 Python
Python爬虫定时计划任务的几种常见方法(推荐)
2021/01/15 Python
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
命名空间(namespace)和程序集(Assembly)有什么区别
2015/09/25 面试题
服务员自我评价
2014/01/25 职场文书
房屋买卖协议书
2014/04/10 职场文书
公司清洁工岗位职责
2015/04/15 职场文书
驻村工作简报
2015/07/20 职场文书
初三语文教学反思
2016/03/03 职场文书
演讲稿:态度决定一切
2019/04/02 职场文书
python 网络编程要点总结
2021/06/18 Python