php数组如何转编码
短信预约 -IT技能 免费直播动态提醒
这篇文章主要介绍php数组如何转编码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
php数组转编码的方法:1、利用“var_export()”和“eval()”方法将含有GBK的中文数组转为utf-8;2、利用递归将数组转码。
PHP数组编码gbk与utf8互相转换的两种方法
一、利用var_export(), eval()方法
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;
二、利用递归将数组转码
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数组如何转编码”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341