2014-03-07 78 views
0

我已經受保護的功能與PHP代碼:保存數組作爲XML文件

$replaceData = array(
     '%userName%' => $order->getUserFullName(), 
     '%userEmail%' => $order->getUserEmail(), 
     '%userPhone%' => $order->getUserPhone(), 
     '%userDeliver%' => $order->getUserDeliverTo(), 
     '%orderId%' => $order->getId(), 
     '%orderKey%' => $order->getKey(), 
     '%orderLink%' => shop_url('cart/view/' . $order->getKey()), 
    ); 

如何保存使用SimpleXML這個數組到XML文件?

+0

怎麼樣的一些研究第一次? http://stackoverflow.com/questions/1397036/how-to-convert-array-to-simplexml – MSadura

回答

1

嘗試這樣做:

$replaceData = array(
     '%userName%' => $order->getUserFullName(), 
     '%userEmail%' => $order->getUserEmail(), 
     '%userPhone%' => $order->getUserPhone(), 
     '%userDeliver%' => $order->getUserDeliverTo(), 
     '%orderId%' => $order->getId(), 
     '%orderKey%' => $order->getKey(), 
     '%orderLink%' => shop_url('cart/view/' . $order->getKey()), 
    ); 

$xml = new SimpleXMLElement('<root/>'); 
array_walk_recursive($replaceData, array ($xml, 'addChild')); 
print $xml->asXML(); 

修正,試試這個保存爲XML

//Save as xml 
$doc = new DOMDocument('1.0'); 
$doc->formatOutput = true; 
$root = $doc->createElement('root'); 
$root = $doc->appendChild($root); 
foreach($replaceData as $key=>$value) 
{ 
    $em = $doc->createElement($key);  
    $text = $doc->createTextNode($value); 
    $em->appendChild($text); 
    $root->appendChild($em); 

} 
$doc->save('file.xml'); 
+0

我認爲「打印」是顯示我的XML內容,但我需要將其保存在服務器文件夾中。 – RSH

+0

對不起,剛剛編輯但注意到它沒有使用simpleXML – Konst