×

关注微信公众号

免备案网站空间虚拟主机双线空间域名查询PS数码后期
photoshop互助课堂数百G视频qy188千亿国际娱乐【平台】下载英语培训机构初中英语如何学随时随地聆听大师开讲/课堂
酷素材!视频qy188千亿国际娱乐【平台】打包下手绘qy188千亿国际娱乐【平台】抠图qy188千亿国际娱乐【平台】路径专辑photoshop cs3视频qy188千亿国际娱乐【平台】

PHP数组编码utf-8与utf8互相转换的两种方法

时间 : 2016-9-10 03:32 作者 : 素材控
 查看 : ( 2117 )  评论 : ( 0 )
摘要 : 一、利用var_export(), eval()方法 /** * 将含有utf-8的中文数组转为utf-8 * * @param array $arr 数组 * @param string $in_charset 原字符串编码 * @param string $out_charset 输出的字符串编码 * @return array ...
一、利用var_export(), eval()方法
/** * 将含有utf-8的中文数组转为utf-8 * * @param array $arr 数组 * @param string $in_charset 原字符串编码 * @param string $out_charset 输出的字符串编码 * @return array */ function array_iconv($arr, $in_charset="utf-8", $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编码 utf-8编码相互转换/(支持数组) * * @param array $str 字符串,支持数组传递 * @param string $in_charset 原字符串编码 * @param string $out_charset 输出的字符串编码 * @return array */ function array_iconv($str, $in_charset="utf-8", $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', 'utf-8//IGNORE', $str); return mb_convert_encoding($str, $out_charset, $in_charset); } else { return $str; } } }
总结 PHP将数组编码utf-8和utf-8相互转换的内容到这就基本结束了,文章介绍的很详细,具有一定的参考价值,希望这篇文章对大家的学习和工作能带来一定的帮助。
分享到:

猜您喜欢

文章评论

相关分类
2345