全网整合营销服务商

营销型网站+SEO优化+关键词快排=一站式服务

免费咨询热线:15959292472

[甘肃seo推广公司]php 数组如何转编码

  

 

  php数组转编码的方法:1、使用iconv函数遍历数组转换字符集;2、利用var_export和eval方法实现转换;3、利用递归将数组进行转码。

  

 

  推荐:《PHP视频教程》

  PHP数组中文字符编码互相转换的三种解决方法

  一、09 2020.10 [朔州seo外包公司]phpmyadmin数据库乱码 phpmyadmin数据库乱码? 一、在phpMyAdmin中查看服务器编码 登陆phpMyAdmin后,在首页可以看到服务器的编码 推荐:《mysql教程》 从图中,我们看到这台MySQL服务器的编码是 UTF-8 Unicode (utf8)。C#.Net教程,使用iconv函数遍历数组转换字符集

  

/*
* 字符串/二维数组/多维数组编码转换
* @param string $in_charset
* @param string $out_charset
* @param mixed $data
*/
function array_iconv($data, $in_charset='GBK', $out_charset='UTF-8'){
if (!is_array($data)){
$output = iconv($in_charset, $out_charset, $data);
}elseif(count($data)===count($data, 1)){//判断是否是二维数组
foreach($data as $key => $value){
$output[$key] = iconv($in_charset, $out_charset, $value);
}
}else{
eval_r('$output = '.iconv($in_charset, $out_charset, var_export($data,
TRUE)).';');
}
return $output;
}

 

  二、利用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编码,php教程之后再用eval来执行返回(类似匿名函数?),至此完美解决问题。

  eval() 函数小结:

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

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

  

$a ="hello"; $res = eval("return $a;"); print_r($res); //

 

  在赋值时必须用反斜杠对$标示符进行转义 eval("\$str = \"$str\";"); echo $str;

  三、利用递归将数组转码(当eval被禁用时)

  

/** * 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 数组如何转编码的详细内容,[甘肃seo推广公司]更多请关注久澳传媒编程栏目其它相关文章!

[甘肃seo推广公司]php 数组如何转编码

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。