개발 중에 특히 인터페이스 개발을 처리할 때 배열과 XML 간의 변환을 자주 접하게 됩니다. 예를 들어 다른 클라이언트는 XML 형식의 데이터를 서버에 게시하고, 프로그램은 서버에서 데이터를 수신하고 처리하는 일을 담당합니다. 구문 분석을 수행하고 데이터 테이블 데이터를 XML 형식으로 타사 애플리케이션에 제공해야 합니다.
이 기사에서는 PHP를 사용하여 배열과 XML 간의 변환을 처리하는 방법을 간략하게 소개합니다.
PHP는 배열을 XML로 변환합니다
PHP는 배열을 xml 형식으로 변환할 수 있습니다. 간단한 방법은 배열을 순회한 다음 배열의 키/값을 xml 노드로 변환한 다음 :
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; }
테스트해 본 결과, 이것이 가장 간단하고 빠르며 대부분 배열을 지원하고 한자가 깨지지 않습니다.
또 다른 방법은 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(); }
또한 배열을 xml로 변환할 수 있으며 다차원 배열을 지원합니다. 생성된 xml 중국어는 왜곡되지 않습니다.
PHP는 XML을 배열로 변환합니다
인터페이스 개발을 하다 보면 일반적인 WeChat 인터페이스, Alipay 인터페이스 등과 같이 다른 사람이 XML 형식으로 제출한 데이터를 자주 접하게 됩니다. 메시지 보내기와 같은 인터페이스 통신은 모두 XML 형식이므로 먼저 이 XML 데이터를 가져오는 방법을 찾은 다음 이를 배열로 변환합니다.
다음과 같은 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 데이터를 구문 분석하고 읽은 다음 json 형식으로 변환합니다. 먼저 그런 다음 배열로 변환하십시오.
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()를 호출하면 다음과 같은 결과를 얻을 수 있습니다.
배열을 가져온 후 , 우리는 데이터에 대해 다양한 처리를 수행할 수 있습니다.
위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다.
PHP 처리 배열과 XML 간의 변환과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!