Ich verwende ob_start()
/ ob_flush()
, um mir hoffentlich während eines langen Importvorgangs etwas Fortschritt zu verschaffen.
Hier ist ein einfacher Überblick über das, was ich mache:
%Vor%Es wird jedoch überhaupt nichts auf den Bildschirm ausgegeben.
Ich weiß, dass die Datendatei heruntergeladen wird, weil ich das Verzeichnis beobachte, in dem sie abgelegt wird.
Ich weiß auch, dass der Import stattfindet, was bedeutet, dass es in der while-Schleife ist, weil ich die DB überwachen kann und Datensätze eingefügt werden.
Irgendwelche Ideen, warum ich nicht auf dem Bildschirm ausgegeben werde?
Sie müssen auch die PHP-Einstellungen überprüfen
einige installieren standardmäßig 4096, einige standardmäßig auf
output_buffering = Aus
output_buffering = 4096
stimmte mit George überein, aber überprüfe die obigen Einstellungen
Stellen Sie sicher, dass Ihre Ausgabepufferung nicht automatisch gestartet wird. Lauf:
%Vor%vor ob_start (); Wenn du etwas anderes sehen wirst als 0, hast du die Antwort.
Hey Mann, ich war auch in diesem Problem stecken geblieben und bekam schließlich die richtige Lösung hier ist es für dich
Sie müssen den Inhaltstyp für Ihre Seite hinzufügen Sie können das auf zwei Arten tun 1. Verwenden von HTML-Tag
%Vor%Beispiel
%Vor%mit PHP-Header-Funktion
<?php header( 'Content-type: text/html; charset=utf-8' ); ?>
Beispiel
%Vor%Alles Gute
Ob_end_clean () verwirft den Inhalt des aktuellen Ausgabepuffers und schaltet die Pufferung aus. Sie sollten stattdessen ob_end_flush () verwenden.
Es ist möglich, dass Ihr Webserver eine eigene Pufferung durchführt. Wahrscheinlich mit etwas wie mod_gzip.
Hier ist ein sehr einfacher Testcode:
%Vor% Wenn das Laden dieser Seite 10 Sekunden dauert, anstatt alle 2 Sekunden eine neue Zeile zu sehen, bedeutet dies, dass sie von Ihrem Webserver zwischengespeichert wird. Für das, was Sie versuchen, müssen Sie ob_start und ob_flush nicht verwenden. Rufen Sie einfach flush
auf, wenn Sie den Inhalt im Browser erzwingen möchten. Aber wie gesagt, wenn der Webserver darauf wartet, dass der Inhalt vor dem Senden abgeschlossen wird, wird das nichts für Sie tun.
Bearbeiten Eine andere Möglichkeit besteht darin, dass Sie die Seite von einem Firmen- oder ISP-Proxy / Firewall aus anzeigen, der auf die gesamte Seite wartet, bevor Sie sie bereitstellen (damit er sie scannen kann, um zu sehen, ob es sieht zum Beispiel wie Pornografie aus.)