今天在利用php做一個交互時我需要生成xml文檔,但是發現xml中漢字全部亂碼了,下面小編來給各位同學介紹一下此問題解決辦法.
先看一個把數組轉換xml,代碼如下:
- function array2xml($array, $xml = false){
- if($xml === false){
- $xml = new SimpleXMLElement('<root/>');
- }
- foreach($array as $key => $value){
- if(is_array($value)){
- array2xml($value, $xml->addChild($key));
- }else{
- $xml->addChild($key, $value);
- }
- }
- return $xml->asXML();
- }
- //開源代碼Vevb.com
- header('Content-type: text/xml');
- print array2xml($array);
這樣如果沒有中文漢字沒問題,如果有中文就有問題了,當內容出現漢字時會出現為空的情況,解決辦法是轉編碼處理,代碼如下:
- /*
- php 數組轉換成xml
- */
- function array2xml($array, $xml = false){
- if($xml === false){
- $xml = new SimpleXMLElement('<root/>');
- }
- foreach($array as $key => $value){
- if(is_array($value)){
- array2xml($value, $xml->addChild($key));
- }else{
- //$value=utf8_encode($value);
- if (preg_match("/([x81-xfe][x40-xfe])/", $value, $match)) {
- $value = iconv('gbk', 'utf-8', $value); //判斷是否有漢字出現
- }
- $xml->addChild($key, $value);
- }
- }
- return $xml->asXML();
- }
新聞熱點
疑難解答