Hallo,
Wenn die Datei nicht zu groß ist:
davon sollte im Zweifel immer ausgegangen werden. Das Einlesen eines gesamten Files in den Arbeitsspeicher (wie es die vorgeschlagenen Funktion file_get_contents() und file() tun würden) ist absolut nicht notwendig:
$f='filename';
$c=0;
$l=0;
$s=[link:http://de3.php.net/manual/de/function.filesize.php@title=filesize]($f);
$dat=[link:http://de3.php.net/manual/de/function.fopen.php@title=fopen]($f,'r+');
[link:http://de3.php.net/manual/de/control-structures.while.php@title=while]([link:http://de3.php.net/manual/de/function.ftell.php@title=ftell]($dat)!=$s){
$c+=$l;
$l=0;
[link:http://de3.php.net/manual/de/control-structures.do.while.php@title=do]{$l+=[link:http://de3.php.net/manual/de/function.strlen.php@title=strlen]($t=[link:http://de3.php.net/manual/de/function.fgets.php@title=fgets]($dat,128));}while([link:http://de3.php.net/manual/de/function.substr.php@title=substr]($t,-1)!="\n");
}
[link:http://de3.php.net/manual/de/function.fseek.php@title=fseek]($dat,$c,SEEK_SET);
[link:http://de3.php.net/manual/de/function.ftruncate.php@title=ftruncate]($dat,$c);
[link:http://de3.php.net/manual/de/function.fclose.php@title=fclose]($dat);
Gegebenenfalls müssen Zweitzugriffe während des Änderungsprozesses verhindert werden. flock() hilft dabei.
Auf der Funktionsseite bitte dringlichst die Warnung beachten!
Gruß aus Berlin!
eddi