网络编程
位置:首页>> 网络编程>> php编程>> PHP自定义函数格式化json数据示例

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

作者:懒人  发布时间:2023-07-17 07:17:45 

标签:PHP,格式化,json

本文实例讲述了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' => "asp之家", '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 = "&nbsp;&nbsp;&nbsp;";
     $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程序设计有所帮助。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com