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 相关文章推荐
如何分别全角和半角以避免乱码
Oct 09 PHP
用PHP与XML联手进行网站编程代码实例
Jul 10 PHP
Discuz 模板引擎的封装类代码
Jul 18 PHP
php下获取客户端ip地址的函数
Mar 15 PHP
PHP验证码类代码( 最新修改,完全定制化! )
Dec 02 PHP
CodeIgniter启用缓存和清除缓存的方法
Jun 12 PHP
ThinkPHP模版引擎之变量输出详解
Dec 05 PHP
PHP实现QQ空间自动回复说说的方法
Dec 02 PHP
win平台安装配置Nginx+php+mysql 环境
Jan 12 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
Apr 04 PHP
PHP策略模式写法
Apr 01 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
phpMyAdmin 安装配置方法和问题解决
2009/06/08 PHP
php读取html并截取字符串的简单代码
2009/11/30 PHP
smarty获得当前url的方法分享
2014/02/14 PHP
PHP获取当前页面URL函数实例
2014/10/22 PHP
FastCGI 进程意外退出造成500错误
2015/07/26 PHP
浅谈php中fopen不能创建中文文件名文件的问题
2017/02/06 PHP
PHP插件PHPMailer发送邮件功能
2017/02/28 PHP
js中查找最近的共有祖先元素的实现代码
2010/12/30 Javascript
JS trim去空格的最佳实践
2011/10/30 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
js导出txt示例代码
2014/01/14 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
2016/06/02 Javascript
JavaScript数据类型转换的注意事项
2016/07/31 Javascript
javascript实现消灭星星小游戏简单版
2016/11/15 Javascript
jQuery中 DOM节点操作方法大全
2017/10/12 jQuery
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
Python简单调用MySQL存储过程并获得返回值的方法
2015/07/20 Python
python开发中range()函数用法实例分析
2015/11/12 Python
深入学习Python中的上下文管理器与else块
2017/08/27 Python
基于Django的python验证码(实例讲解)
2017/10/23 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
2019/11/19 Python
在python中计算ssim的方法(与Matlab结果一致)
2019/12/19 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
keras训练浅层卷积网络并保存和加载模型实例
2020/07/02 Python
CSS3简单实现照片墙
2014/12/12 HTML / CSS
配件采购员岗位职责
2013/12/03 职场文书
保险专业大学生职业规划书
2014/03/03 职场文书
推普周国旗下讲话稿
2014/09/21 职场文书
资源环境与城乡规划管理专业自荐书
2014/09/26 职场文书
毕业生代领毕业材料的授权委托书
2014/09/29 职场文书
银行党员批评与自我批评
2014/10/15 职场文书
小学教师工作总结2015
2015/04/07 职场文书