当前位置:首页 > PHP教程 > php应用 > 列表

php 生成xml文件汉字中文编码问题

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-20 11:26:39 浏览: 评论:0 

今天在利用php做一个交互时我需要生成xml文档,但是发现xml中汉字全部乱码了,下面小编来给各位同学介绍一下此问题解决办法.

先看一个把数组转换xml,代码如下:

  1. function array2xml($array$xml = false){  
  2.     if($xml === false){  
  3.         $xml = new SimpleXMLElement('<root/>');  
  4.     }  
  5.     foreach($array as $key => $value){  
  6.         if(is_array($value)){  
  7.             array2xml($value$xml->addChild($key));  
  8.         }else{  
  9.             $xml->addChild($key$value);  
  10.         }  
  11.     }  
  12.     return $xml->asXML();  
  13. }  
  14.   //开源代码phpfensi.com 
  15. header('Content-type: text/xml');  
  16. print array2xml($array); 

这样如果没有中文汉字没问题,如果有中文就有问题了,当内容出现汉字时会出现为空的情况,解决办法是转编码处理,代码如下:

  1. /*  
  2. php 数组转换成xml  
  3. */ 
  4.    
  5. function array2xml($array$xml = false){  
  6.     if($xml === false){  
  7.         $xml = new SimpleXMLElement('<root/>');  
  8.     }  
  9.     foreach($array as $key => $value){  
  10.         if(is_array($value)){  
  11.             array2xml($value$xml->addChild($key));  
  12.         }else{  
  13.             //$value=utf8_encode($value);  
  14.    
  15.             if (preg_match("/([x81-xfe][x40-xfe])/"$value$match)) {  
  16.                 $value = iconv('gbk''utf-8'$value);   //判断是否有汉字出现  
  17.             }  
  18.             $xml->addChild($key$value);  
  19.         }  
  20.     }  
  21.     return $xml->asXML();  

Tags: php生成xml 汉字中文乱码

分享到: