2012-09-10 77 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