php教程

超轻量级php框架startmvc

PHP自定义函数格式化json数据示例

更新时间:2020-03-11 17:05:27 作者:startmvc
本文实例讲述了PHP自定义函数格式化json数据的方法。分享给大家供大家参考,具体如下:&l

本文实例讲述了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
 }
}
**/
?>

PS:这里再为大家推荐几款比较实用的json在线工具供大家参考使用:

在线JSON代码检验、检验、美化、格式化工具: http://tools.jb51.net/code/json

JSON在线格式化工具: http://tools.jb51.net/code/jsonformat

在线XML/JSON互相转换工具: http://tools.jb51.net/code/xmljson

json代码在线格式化/美化/压缩/编辑/转换工具: http://tools.jb51.net/code/jsoncodeformat

C语言风格/HTML/CSS/json代码格式化美化工具: http://tools.jb51.net/code/ccode_html_css_json

PHP 自定义函数 格式化 json数据