大家好
之前遇到把陣列轉成 XML 格式的需求,這邊給大家參考一下。
// array to xml function array_to_xml($data, &$xml_data) { foreach( $data as $key => $value ) { if( is_array($value) ) { if( is_numeric($key) ) { $key = 'item'.$key; //dealing with <0/>..<n/> issues } $subnode = $xml_data->addChild($key); array_to_xml($value, $subnode); } else { //20160523 zoearth 修正CDATA寫入 if(preg_match("/[\x{4e00}-\x{9fa5}]/u",$value)) { $xmlCData = $xml_data->addChild($key); $node = dom_import_simplexml($xmlCData); $node->appendChild($node->ownerDocument->createCDATASection(htmlspecialchars($value))); } else { $xml_data->addChild($key,htmlspecialchars($value)); } } } } $orderData = array( 'name' => '台中阿任', 'sex' => '男', 'food' => '薯條', ); // 處理 array to xml $xml_data = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><ORDER_DOC/>'); array_to_xml($orderData, $xml_data); $xml = $xml_data->asXML(); echo $xml;
給大家參考囉
感恩。
留言板
歡迎留下建議與分享!希望一起交流!感恩!