Codice PHP:
$fp fopen("file.xml""r+");
if(
flock($fpLOCK_EX)) {
   
$xml fread($fpfilesize("file.xml"));
   
$doc = new DOMDocument();
   
$doc->loadXML($xml);
   
// operazioni
   
fwrite($fp$doc->saveXML());
   
flock($fpLOCK_UN); // rimuovo il lock
} else {
   
// file già bloccato

Questo codice legge il file una sola volta o due?
O meglio la fopen() e la loadXML() leggono tutto il file ogni volta, cioè due volte?