不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2020-11-11 12:35  分类:PHP库/系统/微信  编辑

PHP在5.3之后提供了相关的方法,将一个数组 格式化成json字符串时,指定 JSON_PRETTY_PRINT 参数即可

$arr = ['name' => 'perter', 'course' => ['java', 'php', 'python'], 'sex' => '男'];

echo json_encode($arr, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES);
  • JSON_UNESCAPED_UNICODE 不进行unicode编码
  • JSON_UNESCAPED_SLASHES 不对/加\
  • JSON_UNESCAPED_SLASHES 用空白字符格式化返回的数据

如果要在网页中正常显示,还需要外加一个 <pre></pre> 标签。最后,给出函数实现如下:

/**
 * 美化json字符串
 *
 * @param string  $jsonStr
 * @param boolean $isHtml 是否输出html格式
 * @return string
 */
public static function prettyJson($jsonStr = '', $isHtml = true) {
    $jsonStr = trim($jsonStr);
    $jsonStr = json_encode(json_decode($jsonStr, true), 
        JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
    
    if (!$isHtml) {
        return $jsonStr;
    }
    
    return '<pre>' . $jsonStr . '</pre>';
}