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 相关文章推荐
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
Oct 09 PHP
PHP无限分类的类
Jan 02 PHP
php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
Apr 07 PHP
PHP求最大子序列和的算法实现
Jun 24 PHP
Notice: Trying to get property of non-object problem(PHP)解决办法
Mar 11 PHP
基于PHP Socket配置以及实例的详细介绍
Jun 13 PHP
解析php中memcache的应用
Jun 18 PHP
PHP 导出Excel示例分享
Aug 18 PHP
php使用ob_start()实现图片存入变量的方法
Nov 14 PHP
php+mysql数据库实现无限分类的方法
Dec 12 PHP
php算法实例分享
Jul 14 PHP
thinkphp中的url跳转用法分析
Jul 12 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
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
2010/10/12 PHP
php日期转时间戳,指定日期转换成时间戳
2012/07/17 PHP
php截取字符串并保留完整xml标签的函数代码
2013/02/06 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
smarty学习笔记之常见代码段用法总结
2016/03/19 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
如何实现JS函数的重载
2006/09/22 Javascript
让你的网站可编辑的实现js代码
2009/10/19 Javascript
三级下拉菜单的js实现代码
2011/05/23 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
深入浅析AngularJS和DataModel
2016/02/16 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
详解Angular 4.x NgTemplateOutlet
2017/05/24 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
2017/06/28 Javascript
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
vue的hash值原理也是table切换实例代码
2020/12/14 Vue.js
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
python聊天程序实例代码分享
2013/11/18 Python
python获取程序执行文件路径的方法(推荐)
2018/04/26 Python
Python 创建空的list,以及append用法讲解
2018/05/04 Python
Python发展史及网络爬虫
2019/06/19 Python
Python学习笔记之lambda表达式用法详解
2019/08/08 Python
Python库skimage绘制二值图像代码实例
2020/04/10 Python
python爬虫实现POST request payload形式的请求
2020/04/30 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
2020/06/12 Python
卡骆驰英国官网:Crocs英国
2019/08/22 全球购物
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
安全责任书范本
2014/04/15 职场文书
商铺消防安全责任书
2014/07/29 职场文书
教师个人工作总结范文2014
2014/11/10 职场文书
2014年保育员个人工作总结
2014/12/02 职场文书
2015年保卫科工作总结
2015/05/14 职场文书
公安机关起诉意见书
2015/05/20 职场文书
使用feign服务调用添加Header参数
2021/06/23 Java/Android