estoy intentando crear un fichero de log XML mediante PHP y estoy teniendo algun problemilla.
El tema es el siguiente: supongamos que el fichero XML "log.xml" tiene la siguiente estructura
Cita:
Y que para insertar cada vez una línea de error utilizo el siguiente código:<?xml version="1.0" standalone="yes" ?>
<log>
<log>
<error></log><date>20-02-2007</date></error>
<sql>select * from dual</sql>
<description>bla bla bla</description>
Cita:
Pues bien, el problema es, básicamente, estructural: fwrite escribe al final de todo el archivo, pero lo que realmente quiero es que obviamente escriba el nuevo registro entre el último </error> y </log> (sinó el archivo quedaria bastante mal formado).$xml= fopen("log.xml", "a+");
$content="<error>";
$content.="<date>".$date."</date>";
$content.="<sql>".$sql."</sql>";
$content.="<description>".$description."</description>";
$content.="</error>";
fwrite($xml, $content);
fclose($xml);
$content="<error>";
$content.="<date>".$date."</date>";
$content.="<sql>".$sql."</sql>";
$content.="<description>".$description."</description>";
$content.="</error>";
fwrite($xml, $content);
fclose($xml);
Así pues, ¿Debo recorrer todo el fichero en lugar de hacer fwrite desde el principio para, de esta forma, encontrar el lugar donde se escribe </log> y, así, escribir justo antes? (si el fichero llega a hacerse muy grande podría tardar bastante más, no?)
Qué solución me proponéis?
Mil gracias!!