Heim  >  Artikel  >  Backend-Entwicklung  >  So konvertieren Sie ein PHP-Array in eine Codierung

So konvertieren Sie ein PHP-Array in eine Codierung

藏色散人
藏色散人Original
2020-08-18 10:04:302381Durchsuche

So konvertieren Sie ein PHP-Array in eine Codierung: 1. Verwenden Sie die Funktion iconv, um das Array zu durchlaufen, um den Zeichensatz zu konvertieren. 2. Verwenden Sie die Methoden var_export und eval, um die Konvertierung zu erreichen. 3. Verwenden Sie die Rekursion, um das Array zu transkodieren.

So konvertieren Sie ein PHP-Array in eine Codierung

Empfohlen: „PHP-Video-Tutorial

Drei Lösungen zum Konvertieren chinesischer Zeichenkodierungen in PHP-Arrays zueinander

1. Verwenden Sie die Funktion iconv, um das Array zu durchlaufen und den Zeichensatz zu konvertieren

/*
* 字符串/二维数组/多维数组编码转换
* @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. Verwenden Sie die Methode 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); }

Das Prinzip ist sehr einfach

var_export setzt den zweiten Parameter auf true, gibt die Array-Prototypzeichenfolge zurück, konvertiert die Zeichenfolge in UTF-8-Kodierung und verwendet dann eval um die Rückgabe durchzuführen (ähnlich einer anonymen Funktion?), löst dies das Problem perfekt.

eval()-Funktionszusammenfassung:

Bedingungen: Die eval()-Funktion berechnet die Zeichenfolge gemäß dem PHP-Code. Die Zeichenfolge muss gültiger PHP-Code sein und mit einem Semikolon enden.

Wenn im Codestring keine Return-Anweisung aufgerufen wird, wird NULL zurückgegeben. Wenn der Code Parsing-Fehler enthält, gibt die Funktion eval() false zurück.

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

Sie müssen Backslashes verwenden, um den $-Bezeichner zu maskieren, wenn Sie eval("$str = "$str";"); echo $str;

3 zuweisen. Verwenden Sie Rekursion, um das Array zu transkodieren (wenn eval deaktiviert ist).

/** * 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; } } }

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie ein PHP-Array in eine Codierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn