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下防止单引号,双引号在接受页面转义的设置方法
Sep 25 PHP
PHP 函数学习简单小结
Jul 08 PHP
PHP输出时间差函数代码
Jan 28 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
Jun 25 PHP
php获取参数的几种方法总结
Feb 18 PHP
smarty内置函数foreach用法实例
Jan 22 PHP
WordPress自定义时间显示格式
Mar 27 PHP
Zend Framework数据库操作方法实例总结
Dec 11 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
Dec 15 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
Jun 08 PHP
PHP后台实现微信小程序登录
Aug 03 PHP
PHP获取类私有属性的3种方法
Sep 10 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
PHP多线程抓取网页实现代码
2010/07/22 PHP
php 注册时输入信息验证器的实现详解
2013/07/05 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
2014/02/13 PHP
PHP数组array类常见操作示例
2020/05/15 PHP
[JSF]使用DataModel处理表行事件的实例代码
2013/08/05 Javascript
jquery实现鼠标拖动图片效果示例代码
2014/01/09 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
深入浅出es6模板字符串
2017/08/26 Javascript
vue中的event bus非父子组件通信解析
2017/10/27 Javascript
JQ图片文件上传之前预览功能的简单实例(分享)
2017/11/12 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
vue用ant design中table表格,点击某行时触发的事件操作
2020/10/28 Javascript
[06:25]DOTA2英雄梦之声_第17期_大地之灵
2014/06/20 DOTA
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
python中requests模块的使用方法
2015/04/08 Python
使用Python脚本操作MongoDB的教程
2015/04/16 Python
Python 迭代器与生成器实例详解
2017/05/18 Python
Python安装模块的常见问题及解决方法
2018/02/05 Python
Python字典的核心底层原理讲解
2019/01/24 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
Python列表list操作相关知识小结
2020/01/29 Python
如何在vscode中安装python库的方法步骤
2021/01/06 Python
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
Java提供了哪些企业应用编程接口
2015/02/13 面试题
棉花姑娘教学反思
2014/02/15 职场文书
小组名称和口号
2014/06/09 职场文书
2014年行政工作总结
2014/11/19 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
2015年保送生自荐信
2015/03/24 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
表彰大会新闻稿
2015/07/17 职场文书
2016大一新生军训心得体会
2016/01/11 职场文书
创业开店,这样方式更合理
2019/08/26 职场文书
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
2021/05/12 Python