ホームページ  >  記事  >  バックエンド開発  >  PHP配列エンコーディングを変換する方法

PHP配列エンコーディングを変換する方法

WBOY
WBOYオリジナル
2016-06-23 13:11:491238ブラウズ

最初の方法

$data = eval('return '.iconv('gbk','utf-8',var_export($data,true)).';');

ここでは var_export関数は、変数の文字列表現を出力または返すことができます。この関数は、関数に渡された変数に関する構造情報を返します。返される表現が正当な PHP コードである点を除けば、var_dump()

と似ています。

関数の 2 番目のパラメーターを TRUE に設定することで、変数の表現を返すことができます。

次に、この機能を使用して配列を文字列に変換し、次に iconv を使用して、それを配列に復元するために eval 関数を使用します。今度は結果が正しく表示されます。

第二の方法

< ?phpclass arrayiconv{static protected $in;static protected $out;/*** 静态方法,该方法输入数组并返回数组** @param unknown_type $array 输入的数组* @param unknown_type $in 输入数组的编码* @param unknown_type $out 返回数组的编码* @return unknown 返回的数组*/static public function Conversion($array,$in,$out){self::$in=$in;self::$out=$out;return self::arraymyicov($array);}/*** 内部方法,循环数组** @param unknown_type $array* @return unknown*/static private function arraymyicov($array){foreach ($array as $key=>$value){$key=self::myiconv($key);if (!is_array($value)) {$value=self::myiconv($value);}else {$value=self::arraymyicov($value);}$temparray[$key]=$value;}return $temparray;}/*** 替换数组编码** @param unknown_type $str* @return unknown*/static private function myiconv($str){return iconv(self::$in,self::$out,$str);}}$b=array(“测试”=>array(“测试”=>”测试”,”测试”=>”测试”,”测试”=>array(“测试”=>”测试”)),”fasdf”=>”测试”,”测试”=>”测试 “);$a =arrayiconv::Conversion($b,”utf-8″,”gb2312″);print_r($a);?>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。