php中json中文处理函数(中文显示与中文编码)
发布:smiling 来源: PHP粉丝网 添加日期:2015-04-11 15:49:25 浏览: 评论:0
php中json中文处理功能对于初学者来说是一个比较好用的函数,如果我们直接使用json处理函数来做你会发现中文会变成了null了,如果我们转换在uft8之后会显示的是中文的字符编码了,下面我整理两个工作中用到的函数,希望对各位有帮助.
例子,代码如下:
- function encodeConvert($str,$fromCode,$toCode)
- {
- if(strtoupper($toCode) == strtoupper($fromCode)) return $str;
- if(is_string($str)){
- if(function_exists('mb_convert_encoding')){
- return mb_convert_encoding($str,$toCode,$fromCode);
- } //开源软件:phpfensi.com
- else{
- return iconv($fromCode,$toCode,$str);
- }
- }
- elseif(is_array($str)){
- foreach($str as $k=>$v){
- $str[$k] = encodeConvert($v,$fromCode,$toCode);
- }
- return $str;
- }
- return $str;
- }
例子,代码如下:
- /**************************************************************
- *
- * 将数组转换为JSON字符串(兼容中文)
- * @param array $array 要转换的数组
- * @return string 转换得到的json字符串
- * @access public
- *
- *************************************************************/
- function JSON($array) {
- arrayRecursive($array, 'urlencode', true);
- $json = json_encode($array);
- return urldecode($json);
- }
- /**************************************************************
- *
- * 使用特定function对数组中所有元素做处理
- * @param string &$array 要处理的字符串
- * @param string $function 要执行的函数
- * @return boolean $apply_to_keys_also 是否也应用到key上
- * @access public
- *
- *************************************************************/
- function arrayRecursive(&$array, $function, $apply_to_keys_also = false){
- static $recursive_counter = 0;
- if (++$recursive_counter > 1000) {
- die('possible deep recursion attack');
- }
- foreach ($array as $key => $value) {
- if (is_array($value)) {
- arrayRecursive($array[$key], $function, $apply_to_keys_also);
- } else {
- $array[$key] = $function($value);
- }
- if ($apply_to_keys_also && is_string($key)) {
- $new_key = $function($key);
- if ($new_key != $key) {
- $array[$new_key] = $array[$key];
- unset($array[$key]);
- }
- }
- }
- $recursive_counter--;
- }
测试例子,代码如下:
- $arr = array (
- array (
- 'catid' => '4',
- 'catname' => 'php粉丝网网',
- 'meta_title' => 'php粉丝网网2'
- ),
- array (
- 'catid' => '55',
- 'catname' => 'php教程',
- 'meta_title' => 'http://www.phpfensi.com',
- )
- );
- echo JSON($arr);
- echo json_encode(encodeConvert($arr,'gb2312','utf-8'));/* */
- 输出结果如下
- [{"catid":"4","catname":"php粉丝网","meta_title":"php粉丝网2"},{"catid":"55","catname":"php教程","meta_title":"http://www.phpfensi.com"}]
- [{"catid":"4","catname":"\u4e00\u805a\u6559\u7a0b\u7f51","meta_title":"\u4e00\u805a\u6559\u7a0b\u7f512"},{"catid":"55","catname":"php\u6559\u7a0b","meta_title":"http:\/\/www.phpfensi.com"}]
Tags: json中文处理 php中文函数
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)