Hallo,
Hinweis: Mit file() solltest Du keine Dateien auslesen, weil file() sie nicht sperrt. Nimm lieber die Methoden die ich in meinem Artikel beschrieben habe.
hm ja, mir erschien es nur einfacher, weil bei file die einzelnen zeilen schon automatisch durch die zeilenumbrüche getrennt sind und so auch in ein array eingelesen werden, ich wußte nicht wie ich die werte sonst trennen und einlesen sollte, aber ich könnte ja die datei öffnen, mit LOCK_SH sperren, mit file() auslesen und dann wieder schließen.. hm, warum hab ich jetzt das gefühl das das krude ist...
Warum liest Du die Datei nicht einfach per fread() ein und trennst den Inhalt per preg_split?
$fp = fopen ('dateiname', 'rb+');
if (!is_resource ($fp)) {
// Fehlerbehandlung
}
if (!flock ($fp, LOCK_SH)) {
// Fehlerbehandlung
}
$data = fread ($fp, filesize ('dateiname'));
$hash = sha1sum ($data);
$lines = preg_split ("/\r\n|\r|\n/", $data);
fclose ($fp);
Oder, falls Du wie bei file() die Zeilenende-Zeichen mitnehmen willst:
$lines = preg_split ("/(?<=\r\n|\r|\n)/", $data);
Alternativ könntest Du natürlich auch in einer Schleife per fgets() das Zeilenweise auslesen und in einem Array speichern - oder direkt wieterverarbeiten - oder was auch immer.
Viele Grüße,
Christian