PHP 배열 인 코딩 gbk 와 utf 8 이 서로 전환 하 는 두 가지 방법

1.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;
2.재 귀 를 이용 하여 배열 을 바 꿉 니 다.

/**
 * 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 는 배열 인 코딩 gbk 와 utf-8 을 서로 바 꾸 는 내용 을 여기까지 하면 기본적으로 끝 납 니 다.글 은 상세 하고 참고 가치 가 있 습 니 다.이 글 이 여러분 의 학습 과 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기