2017-02-17 3 views
0

Ich möchte eine CSV mit PHP generieren, aber ich möchte die Datei später mit file_get_contents herunterladen, wenn es abgeschlossen ist. Gibt es eine Möglichkeit zu überprüfen, ob eine Datei bereits vollständig ist?PHP: Wie überprüft man, ob die Datei vollständig ist

+0

Sie einen Datenbankeintrag schreiben könnte, wenn vervollständigt die Datei zu erzeugen und nur Download von Dateien von/über die Datenbank. – jeroen

+0

Wenn Sie es mit einer Schaltfläche auslösen wollen, ist file_exists() eine Option? – Seregmir

+0

Ohne das Problem im Detail zu beschreiben und den Code und seine Vorgehensweise zu zeigen, ist es nicht möglich, Ihnen eine konkrete Antwort zu geben. Wenn Sie eine Datei erstellen, müssen Sie sie nicht herunterladen, da sie sich bereits auf dem Server befindet. Da PHP standardmäßig nicht async arbeitet, ist die Datei nur fertig, wenn 'file_get_contents()' beendet ist. Deine Frage ist unklar. – DanFromGermany

Antwort

0

Es ist in Ordnung, aber die Art, wie Sie es tun, ist falsch (zumindest "überhaupt nicht korrekt").

fgets() gibt false zurück, wenn das Ende der Datei erreicht ist, daher sollten Sie stattdessen gegen false testen. Es funktioniert für Sie, weil Sie den "einfachen" Gleichheitsoperator (==) verwenden, der beim Vergleich mit einem Booleschen Wert Null auf Falsch setzt.

Gibt eine Zeichenfolge mit einer Länge von bis zu 1 Byte aus der Datei zurück, auf die von handle verwiesen wird. Wenn im Dateizeiger keine Daten mehr zu lesen sind, wird FALSE zurückgegeben.

Wenn ein Fehler auftritt, wird FALSE zurückgegeben. Das bedeutet, müssen sie wie folgt aussehen:

while (($c = fgets($f)) !== false) { 
    doSomethingWith($c); 
} 
+0

Was ist der Unterschied zwischen der einfachen Verwendung von 'file_get_contents()', bis es fertig ist und Ihre Lösung? – DanFromGermany

Verwandte Themen