php xml相关操作
<?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"; $content.='<'.$k.'><![CDATA['.$v.']]></'.$k.'>'."\n"; } } $flag = fwrite($handler,$content); fclose($handler); return $flag; } public static function parseXML($xmlSrc){ if(empty($xmlSrc)){ return false; } $array = array(); libxml_disable_entity_loader(true); $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 ""; } } } ?>
posted on 2024-11-12 17:28 andydaopeng 阅读(3) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)