Bueno, así a voz de pronto, se me ocurre que sobreescribas el fichero de texto pero manteniendo parte de lo que tenias ya escrito.
Fijate en el código, ya que antes de sobreescribir genero una copia de seguridad.
Para probarlo, crea un fichero de texto con el nombre que quieras, yo lo he llamado "Fichero.txt", guardalo en el mismo directorio donde este el script.
Ejecuta el script llamando a la función con este mismo nombre de fichero.
Código PHP:
<?php
function Leerdatos_Fichero ($filename)
{
$BytesDeLectura = 1*(1024*1024); // Cantidad de bytes que serán leidos
$buffer = '';
$handle = fopen($filename, 'rb');
if ($handle === false)
{
return false;
}
while (!feof($handle))
{
$buffer = fread($handle, $BytesDeLectura);
///////////////////////////////////////////////////////////////////////////
//Crear un copia de seguridad del contenido actual
$fp = fopen("BK.".$filename, "w+b");
//Escribir en el fichero
$Result = fwrite($fp, $buffer)or die("No se puede escribir en el fichero");
//Cerrar el fichero
fclose($fp);
///////////////////////////////////////////////////////////////////////////
//Extraemos las etiquetas del final
$TamCadena = strlen($buffer) - 14;
$buffer = substr($buffer, 0, $TamCadena);
//Añadimos algo al fichero
$buffer .= "Estas líneas han sido añadidas a posterioridad.\r\n";
$buffer .= "Aparecerán por delante de las etiquetas.\r\n";
$buffer .= "Podrían haber sido añadidas desde una consula SQL.\r\n";
//Se vuelven a añadir las etiquetas extraidas anteriormente
$buffer .= "</g>\r\n";
$buffer .= "</svg>\r\n";
//Mostrar el contenido de $buffer en pantalla.
//Esto no es necesario.
print $buffer;
}
//Sobreescribir el fichero original
$fp = fopen($filename, "w+b");
//Escribir en el fichero
$Result = fwrite($fp, $buffer)or die("No se puede escribir en el fichero");
//Cerrar el fichero
fclose($fp);
return fclose($handle);
}
//Llamar a la función
Leerdatos_Fichero("Fichero.txt");
?>
Pruebalo y ya nos comentarás.
Ten en cuenta que es sólo una idea de como hacerlo.