xml地图|网站地图|网站标签 [设为首页] [加入收藏]
解决php array数组生成xml文件汉字编码问题
分类:网络频道

例,生成xml文档

在 php 数组转xml我们在php中学会这样来写

 代码如下

 代码如下

class SimpleXMLExtended extends SimpleXMLElement {
  public function addCData($cdata_text) {
    $node = dom_import_simplexml($this);
    $no   = $node->ownerDocument;
    $node->appendChild($no->createCDATASection($cdata_text));
    }
  }
function array2xml($array, $xml = false){
    if($xml === false){
        $xml = new SimpleXMLExtended('<root/>');
    }
    foreach($array as $key => $value){
        if(is_array($value)){
            array2xml($value, $xml->addChild($key));
        }else{
            //如果包含汉字,转编码
            if (preg_match("/([x81-xfe][x40-xfe])/", $value, $match)) {
                $value = iconv('gbk', 'utf-8', $value);
            }
            $xml->$key = NULL; // VERY IMPORTANT! We need a node where to append
            $xml->$key->addCData($value);
            //$xml->$key->addAttribute('lang', 'en');
           // $xml->addChild($key, $value);
        }
    }
    return $xml->asXML();
}

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();
}
 
header('Content-type: text/xml');
print array2xml($array);

当内容出现汉字时会出现为空的情况

SimpleXMLElement解析xml

解决办法是转编码处理

 代码如下

 代码如下

本文由宝马娱乐在线发布于网络频道,转载请注明出处:解决php array数组生成xml文件汉字编码问题

上一篇:没有了 下一篇:php多维数组的排序方式
猜你喜欢
热门排行
精彩图文