PHP 배열을 인코딩으로 변환하는 방법: 1. iconv 함수를 사용하여 배열을 탐색하여 문자 집합을 변환합니다. 2. var_export 및 eval 메서드를 사용하여 변환을 수행합니다. 3. 재귀를 사용하여 배열을 트랜스코딩합니다.
추천: "PHP 비디오 튜토리얼"
PHP 배열에서 중국어 문자 인코딩을 변환하기 위한 세 가지 솔루션
1. 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; }
2 .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을 사용하여 다음을 수행합니다. return(익명 함수와 유사?)을 수행하면 문제가 완벽하게 해결됩니다.
eval() 함수 요약:
조건: eval() 함수는 PHP 코드에 따라 문자열을 계산합니다. 문자열은 유효한 PHP 코드여야 하며 세미콜론으로 끝나야 합니다.
코드 문자열에서 return 문을 호출하지 않으면 NULL이 반환됩니다. 코드에 구문 분석 오류가 있는 경우 eval() 함수는 false를 반환합니다.
$a ="hello"; $res = eval("return $a;"); print_r($res); //
eval("$str = "$str";");을 할당할 때 백슬래시를 사용하여 $ 식별자를 이스케이프해야 합니다. echo $str;
3. 재귀를 사용하여 배열을 트랜스코딩합니다(eval이 비활성화된 경우)
으아악위 내용은 PHP 배열을 인코딩으로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!