码迷,mamicode.com
首页 > Web开发 > 详细

PHP-操作json

时间:2019-01-27 21:57:58      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:操作   输出   date   现在   字符串   foreach   compare   cape   ace   

输出json文件中文处理

<?php
$json_array = array();

// 1。转换为json字符串(不自动转换为unicode编码)
if (version_compare(PHP_VERSION,‘5.4.0‘,‘<‘))
    $json_string = preg_replace_callback("#\\\u([0-9a-f]{4})#i", function($matchs){return iconv(‘UCS-2BE‘,‘UTF-8‘,pack(‘H4‘, $matchs[1]));}, json_encode($json_array));
else
    $json_string = json_encode($json_array, JSON_UNESCAPED_UNICODE);

// 2。现在$json_string是gbk编码,转换为utf8
$json_string = iconv(‘GB2312‘, ‘UTF-8‘, $tables);

// 3。输出到文件
file_put_contents(‘./json_string.json‘, $json_string);

json文件缩进调整

只能大概调整一下,以后再改进吧

/**
 * 重新调整json缩进
 * @Author   zjf
 * @DateTime 2017-03-10
 * @param    String     $json json字符串
 * @return   String     处理后的json字符串
 */
function reindent_json($json){
    preg_match_all(‘/\{|\}|,/‘,$json,$matches);
    $tab = 0;
    $eol = PHP_EOL;
    foreach ($matches[0] as $key => $value) {
        if ($value == ‘{‘) {
            $json = preg_replace(‘/\{(?!‘.$eol.‘)/‘, "{".$eol.str_repeat("\t", ++$tab), $json, 1);
        }elseif ($value == ‘}‘) {
            $json = preg_replace(‘/([^\t])\}/‘, "$1".$eol.str_repeat("\t", --$tab)."}", $json, 1);
        }elseif ($value == ‘,‘) {
            $json = preg_replace(‘/,(?!‘.$eol.‘)/‘, ",".$eol.str_repeat("\t", $tab), $json, 1);
        }
    }
    return $json;
}

PHP-操作json

标签:操作   输出   date   现在   字符串   foreach   compare   cape   ace   

原文地址:https://www.cnblogs.com/jffun-blog/p/10327423.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!