Hallo seth,
[...] dann wuerdest du gefahr laufen, dass es bei grossen dateien recht lange dauern kann sie via file oder file_get_contents einzulesen (oder irre ich mich da? ich kenne die vorgehensweise von php da nicht genau).
über diese Funktionen kann ich auch nur mutmaßen; ich vermute aber, dass der Zeitbedarf nicht wesentlich größer ist als der für das anschließende trim() auf den gesamten Pufferinhalt. Das bissl File-I/O dürfte im Verhältnis zur internen dynamischen Speicherverwaltung von PHP kaum ins Gewicht fallen.
deshalb wuerde ich bloss die ersten beiden zeilen (mit fgets) einlesen und abbrechen, falls eine zweite zeile existiert. anschliessend kann man die erste zeile mit
if(trim($first_line, ' ')==='') { /* nur leerzeichen */}
checken.
Jaaa...
Das ist 'ne gute Idee, falls der OP mit dem Begriff "Leerzeichen" wirklich nur Spaces (20h) gemeint hat. Falls er aber den Begriff etwas weiter fassen möchte und alles einschließen will, was üblicherweise unter dem Begriff "Whitespace" läuft, ist dein Vorschlag keine Alternative mehr.
Okay, man kann natürlich auch etwas Aufwand treiben und die Datei häppchenweise in einen kleineren Puffer lesen, trim() darauf loslassen, und beim ersten Vorkommen eines Reststrings mit einer Länge >0 die Aktion beenden. Bei sehr großen Dateien spart das möglicherweise etwas Zeit; aber ich glaube nicht, dass das im wahrnehmbaren Bereich liegt.
So long,
Martin
Man soll den Tag nicht vor dem Abend loben.
Und den Mann nicht vor dem Morgen.
(alte Volksweisheit)