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读取javascript设置的cookies的代码
Apr 12 PHP
php性能优化分析工具XDebug 大型网站调试工具
May 22 PHP
安装apache2.2.22配置php5.4(具体操作步骤)
Jun 26 PHP
百度地图API应用之获取用户的具体位置
Jun 10 PHP
php实现获取文章内容第一张图片的方法
Nov 04 PHP
微信access_token的获取开发示例
Apr 16 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
Sep 09 PHP
老生常谈PHP面向对象之命令模式(必看篇)
May 24 PHP
PHP生成随机数的方法总结
Mar 01 PHP
PHP利用百度ai实现文本和图片审核
May 08 PHP
零基础php编程好学吗
Oct 11 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
May 27 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 expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
php中filter函数验证、过滤用户输入的数据
2014/01/13 PHP
PHP代码维护,重构变困难的4种原因分析
2016/01/25 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
基于PHP实现用户登录注册功能的详细教程
2020/08/04 PHP
js 链式延迟执行DOME
2012/01/04 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
基于js与flash实现的网站flv视频播放插件代码
2014/10/14 Javascript
javascript比较两个日期的先后示例代码
2014/12/31 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
js学习阶段总结(必看篇)
2016/06/16 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
JS实现中国公民身份证号码有效性验证
2017/02/20 Javascript
探究react-native 源码的图片缓存问题
2017/08/24 Javascript
对vue v-if v-else-if v-else 的简单使用详解
2018/09/29 Javascript
了解前端理论:rscss和rsjs
2019/05/23 Javascript
如何区分vue中的v-show 与 v-if
2020/09/08 Javascript
[02:36]DOTA2英雄基础教程 一击致命幻影刺客
2013/12/06 DOTA
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
python字典值排序并取出前n个key值的方法
2018/10/17 Python
pytorch 自定义数据集加载方法
2019/08/18 Python
python requests证书问题解决
2019/09/05 Python
django中的图片验证码功能
2019/09/18 Python
pygame实现非图片按钮效果
2019/10/29 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
Sunglasses Shop英国:欧洲领先的太阳镜在线供应商之一
2018/09/19 全球购物
外语学院毕业生的自我鉴定
2013/11/28 职场文书
中英文自我评价常用句型
2013/12/19 职场文书
致百米运动员广播稿
2014/01/29 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
法定代表人授权委托书
2014/09/19 职场文书
班子个人四风问题整改措施
2014/10/04 职场文书
Mysql效率优化定位较低sql的两种方式
2021/05/26 MySQL
浅谈MySQL函数
2021/10/05 MySQL