国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP處理數(shù)組和XML之間的互相轉換

2020-03-22 20:26:39
字體:
來源:轉載
供稿:網(wǎng)友
在開發(fā)中,我們經(jīng)常會遇到數(shù)組與XML之間的互相轉換,尤其在處理接口開發(fā)的時候經(jīng)常用到,比如對方客戶端POST一個XML格式的數(shù)據(jù)到服務器上,服務器上的程序要負責接收解析,還有需要將數(shù)據(jù)表數(shù)據(jù)以XML格式提供給第三方等等應用。
本文我們將簡單介紹如何使用PHP處理數(shù)組和XML之間的互相轉換。源碼下載:PHP數(shù)組與XML之間的轉換PHP將數(shù)組轉換成XML
PHP可以將數(shù)組轉換成xml格式,簡單的辦法是遍歷數(shù)組,然后將數(shù)組的key/html' target='_blank'>value轉換成xml節(jié)點,再直接echo輸出了,如:
function arrayToXml($arr){ $xml = " root foreach ($arr as $key= $val){ if(is_array($val)){ $xml.=" ".$key." ".arrayToXml($val)." /".$key." }else{ $xml.=" ".$key." ".$val." /".$key." $xml.=" /root return $xml; }我測試了下,這個最簡單,速度又快,支持多為數(shù)組,中文也不會亂碼。
另一種方法是利用DOMDocument來生成xml結構:
function arrayToXml($arr,$dom=0,$item=0){ if (!$dom){ $dom = new DOMDocument("1.0"); if(!$item){ $item = $dom- createElement("root"); $dom- appendChild($item); foreach ($arr as $key= $val){ $itemx = $dom- createElement(is_string($key) $key:"item"); $item- appendChild($itemx); if (!is_array($val)){ $text = $dom- createTextNode($val); $itemx- appendChild($text); }else { arrayToXml($val,$dom,$itemx); return $dom- saveXML(); 它同樣可以將數(shù)組轉換成xml,而且支持多維數(shù)組,生成的xml中文也不會亂碼。PHP將XML轉換成數(shù)組
做接口開發(fā)的時候經(jīng)常會碰到別人提交給你的是xml格式的數(shù)據(jù),常見的微信接口、支付寶接口等,他們的接口如發(fā)送消息通信都是xml格式的,那么我們先想辦法拿到這個xml數(shù)據(jù),然后再將其轉化成數(shù)組。
假設我們獲取到一個這樣的XML:
root user 月光光abcd /user pvs 13002 /pvs ips baidu_ip 1200 /baidu_ip google_ip 1829 /google_ip /ips date 2016-06-01 /date /root 通過simplexml_load_string()解析讀取xml數(shù)據(jù),然后先轉成json格式,再轉換成數(shù)組。
function xmlToArray($xml){ //禁止引用外部xml實體 libxml_disable_entity_loader(true); $xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA); $val = json_decode(json_encode($xmlstring),true); return $val; 調用xmlToArray()可得到以下結果:

得到數(shù)組后,我們就可以對數(shù)據(jù)進行各種處理了。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持phpstudy。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 天门市| 台北县| 台北市| 徐闻县| 惠东县| 临夏县| 平和县| 海淀区| 始兴县| 兴安盟| 内黄县| 政和县| 苏州市| 青河县| 高安市| 延吉市| 富裕县| 新密市| 康马县| 铁力市| 应城市| 博罗县| 富源县| 清涧县| 虹口区| 广灵县| 衢州市| 南漳县| 洪泽县| 涞水县| 温宿县| 新巴尔虎右旗| 镇原县| 瑞昌市| 文化| 巢湖市| 邢台市| 镇安县| 安塞县| 长春市| 郴州市|