집 >데이터 베이스 >MySQL 튜토리얼 >배열과 XML 간 변환을 위한 PHP 처리 예제 코드
개발 중에 특히 인터페이스 개발을 처리할 때 배열과 XML 간의 변환을 자주 접하게 됩니다. 예를 들어 다른 클라이언트가 XML 형식의 데이터를 서버에 게시하는 경우 서버의 프로그램이 분석을 수신해야 합니다. 데이터 테이블 데이터를 XML 형식으로 타사 애플리케이션에 제공하는 데에도 필요합니다.
이 기사에서는 PHP를 사용하여 배열과 XML 간의 변환을 처리하는 방법을 간략하게 소개합니다.
PHP는 배열을 XML로 변환합니다
PHP는 배열을 xml 형식으로 변환할 수 있습니다. 간단한 방법은 배열을 트래버스한 다음 배열의 키/값을 xml 노드로 변환한 다음 출력을 직접 에코하는 것입니다. as:
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을 얻었다고 가정해 보겠습니다.
<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()를 호출하여 다음 결과를 얻습니다.
배열을 얻은 후 데이터에 대해 다양한 처리를 수행할 수 있습니다.
위 내용은 배열과 XML 간 변환을 위한 PHP 처리 예제 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!