2012-09-10 115 views
0

有沒有辦法在xml寫入過程中檢查寫入錯誤是否發生?我使用xml寫入數據,但有時由於服務器故障數據已損壞/未完成?如果寫入XML失敗

我想確保xml文檔被寫入,否則再次執行它!

$doc = new DOMDocument("1.0", "ISO-8859-1"); 
$doc->formatOutput = true; 

$r = $doc->createElement("library"); 
$doc->appendChild($r); 

$b = $doc->createElement("data"); 

$time = $doc->createElement("updatetime"); 
$time->appendChild($doc->createTextNode($timestamp)); 
$b->appendChild($time); 

$update = $doc->createElement("update"); 
$update->appendChild($doc->createTextNode(0)); 
$b->appendChild($update); 

$data = $doc->createElement("thestring"); 
$data->appendChild( 
$doc->createTextNode($string) 
); 
$b->appendChild($data); 

$r->appendChild($b); 

$doc->save('xml_users/'.$currplayer.'.xml'); 

請幫忙:-)

+0

$ doc->保存只需一次寫入文件即可。如果最終得到一半文件,可能是因爲該腳本被殺死,或者磁盤已滿。無論哪種情況,都不太可能在腳本中解決它。 – GolezTrol

回答

0

檢查save返回false:

裹成的一切返回DOM文檔對象的函數然後調用它

$doc = createUser($vars); 
if(!$doc->save('xml_users/'.$currplayer.'.xml')){ 
    // run code again 
    $doc = createUser($vars); 
} 
+0

把'if'改成'while',你就完成了。 ;-) 繼續嘗試。永遠。 – GolezTrol

+0

您的變量,在功能中使用,儘可能多的.. –

+0

因此,「/ /再次運行代碼」是我應該把「createUser($ vars)」? – Mansa