You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.8 KiB
PHP
72 lines
1.8 KiB
PHP
<?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 = self::getXmlEncode($xmlSrc);//$this->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 "";
|
|
}
|
|
}
|
|
}
|
|
?>
|