| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- class Utils{
- /**
- * 将数据转为XML
- */
- public static function toXml($array){
- $xml = '<xml>';
- forEach($array as $k=>$v){
- $xml.='<'.$k.'><![CDATA['.$v.']]></'.$k.'>';
- }
- $xml.='</xml>';
- return $xml;
- }
-
- public static function dataRecodes($title,$data){
- $handler = fopen('result.txt','a+');
- $content = "================".$title."===================\n";
- if(is_string($data) === true){
- $content .= $data."\n";
- }
- if(is_array($data) === true){
- forEach($data as $k=>$v){
- $content .= "key: ".$k." value: ".$v."\n";
- }
- }
- $flag = fwrite($handler,$content);
- fclose($handler);
- return $flag;
- }
- public static function parseXML($xmlSrc){
- if(empty($xmlSrc)){
- return false;
- }
- $array = array();
- $xml = simplexml_load_string($xmlSrc);
- $encode = Utils::getXmlEncode($xmlSrc);
- if($xml && $xml->children()) {
- foreach ($xml->children() as $node){
- //有子节点
- if($node->children()) {
- $k = $node->getName();
- $nodeXml = $node->asXML();
- $v = substr($nodeXml, strlen($k)+2, strlen($nodeXml)-2*strlen($k)-5);
-
- } else {
- $k = $node->getName();
- $v = (string)$node;
- }
-
- if($encode!="" && $encode != "UTF-8") {
- $k = iconv("UTF-8", $encode, $k);
- $v = iconv("UTF-8", $encode, $v);
- }
- $array[$k] = $v;
- }
- }
- return $array;
- }
- //获取xml编码
- function getXmlEncode($xml) {
- $ret = preg_match ("/<?xml[^>]* encoding=\"(.*)\"[^>]* ?>/i", $xml, $arr);
- if($ret) {
- return strtoupper ( $arr[1] );
- } else {
- return "";
- }
- }
- }
- ?>
|