最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

PHP将数组编码gbk和utf-8相互转换

来源:动视网 责编:小采 时间:2020-11-03 23:12:10
文档

PHP将数组编码gbk和utf-8相互转换

PHP将数组编码gbk和utf-8相互转换:这里有两种方法,都可以实现数组的编码相互转换。一、利用var_export(), eval()方法/** * 将含有GBK的中文数组转为utf-8 * * @param array $arr 数组 * @param string $in_charset 原字符串编码 * @param string $out_char
推荐度:
导读PHP将数组编码gbk和utf-8相互转换:这里有两种方法,都可以实现数组的编码相互转换。一、利用var_export(), eval()方法/** * 将含有GBK的中文数组转为utf-8 * * @param array $arr 数组 * @param string $in_charset 原字符串编码 * @param string $out_char


这里有两种方法,都可以实现数组的编码相互转换。

一、利用var_export(), eval()方法

/**
 * 将含有GBK的中文数组转为utf-8
 *
 * @param array $arr 数组
 * @param string $in_charset 原字符串编码
 * @param string $out_charset 输出的字符串编码
 * @return array
 */
function array_iconv($arr, $in_charset="gbk", $out_charset="utf-8")
{
 $ret = eval('return '.iconv($in_charset,$out_charset,var_export($arr,true).';'));
 return $ret;
 // 这里转码之后可以输出json
 // return json_encode($ret);
}

原理很简单 var_export设置第二个参数为true,返回数组原型字符串,将字符串转换为utf-8编码,之后再用eval来执行返回(类似匿名函数?),至此完美解决问题。

eval() 函数小结:

条件:eval() 函数把字符串按照 PHP 代码来计算。该字符串必须是合法的 PHP 代码,且必须以分号结尾。

如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。

 $a ="hello";
 $res = eval("return $a;");
 print_r($res);
 // 在赋值时必须用反斜杠对$标示符进行转义
 eval("$str = "$str";");
 echo $str;

二、利用递归将数组转码

/**
 * UTF-8编码 GBK编码相互转换/(支持数组)
 *
 * @param array $str 字符串,支持数组传递
 * @param string $in_charset 原字符串编码
 * @param string $out_charset 输出的字符串编码
 * @return array
 */
function array_iconv($str, $in_charset="gbk", $out_charset="utf-8")
{
 if(is_array($str))
 {
 foreach($str as $k => $v)
 {
 $str[$k] = array_iconv($v);
 }
 return $str;
 }
 else
 {
 if(is_string($str))
 {
 // return iconv('UTF-8', 'GBK//IGNORE', $str);
 return mb_convert_encoding($str, $out_charset, $in_charset);
 }
 else
 {
 return $str;
 }
 }
}

更多PHP相关知识,请访问PHP中文网!

文档

PHP将数组编码gbk和utf-8相互转换

PHP将数组编码gbk和utf-8相互转换:这里有两种方法,都可以实现数组的编码相互转换。一、利用var_export(), eval()方法/** * 将含有GBK的中文数组转为utf-8 * * @param array $arr 数组 * @param string $in_charset 原字符串编码 * @param string $out_char
推荐度:
标签: php 编码 相互转换
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top