Ich habe ein PHP-Skript, das 10 verschiedene Server verbindet, um Daten zu erhalten. Ich möchte, dass die Ergebnisse der ersten Verbindung gedruckt werden, bevor die zweite beginnt.Druckergebnisse sofort (php)
Antwort
Mit flush
und/oder ob_flush
sollten Sie bekommen, was Sie wollen.
Hier ist eine kurze Demonstration:
for ($i=0 ; $i<10 ; $i++) {
echo "$i<br />";
ob_flush();
flush();
sleep(1);
}
Jede Sekunde wird eine Nummer an den Browser gesendet werden, ohne dass für die Schleife/script warten zu beenden.
(Ohne beiden bündig und ob_flush
, wartet er bis zum Ende des Skripts um die Ausgabe zu senden)
Erklärung darüber, warum Sie beide benötigen, von der bündigen Seite im Handbuch zu zitieren:
Spült die Schreibpuffer von PHP und was immer Backend PHP verwendet (CGI, ein Webserver, etc). Dies versucht Push-Strom den ganzen Weg zum Browser mit ein paar Einschränkungen.
flush() nicht in der Lage sein die Pufferungsschema Ihrer Web Server außer Kraft zu setzen, und es hat keine Auswirkungen auf clientseitige Pufferung im Browser. Es hat auch keinen Einfluss auf PHP Userspace Ausgabepuffermechanismus. Das bedeutet Sie müssen sowohl ob_flush() als auch flush() aufrufen, um die ob-Ausgabe Puffer zu löschen, wenn Sie diese verwenden.
Wenn dies nicht für Sie arbeiten, einen Blick auf die Kommentare auf den beiden Seiten des Handbuchs nehmen können Sie ein paar Hinweise geben auf
@sshow: Ich habe gehört, diese Frage ein paar Mal von Kollegen bei der Arbeit, tatsächlich - und benutzte es selbst einmal oder zweimal - das hilft ^^ –
Danke, tolle Antwort! Hat viel geholfen. –
„Warum könnte es scheitern“ ob_end_flush http://us.php.net/ob_end_flush
dieser Funktion wird der Ausgangspuffer leert und Ausgabepufferung deaktiviert. Alles nach dieser Funktion wird sofort an den Browser gesendet.
Ja, ob_flush sollte es tun. Ich mache das die ganze Zeit mit einer LOOONG-Seite, wenn ich den Fortschritt der Operation beobachten will.
- 1. wickeln eine MySQL-Abfrage in einer PHP-Funktion und Druckergebnisse
- 2. Druckergebnisse mit hoher Präzision (Gleitkomma)
- 3. PHP - Wird fwrite() die Datei sofort speichern?
- 4. IIFE (sofort aufgerufene Funktionsausdruck) in PHP?
- 5. Rails Active Record Iteration und Druckergebnisse Rückkehr unnormal Fehler
- 6. Öffnen jeder Datei/Unterordner im Verzeichnis und Druckergebnisse Datei
- 7. SOFORT COMMAND
- 8. WAMP wird nicht sofort aktualisiert?
- 9. Wie zu senden php Ergebnis zu Ajax sofort
- 10. Ratsche WebSocket - Nachricht sofort senden
- 11. async MVVM Befehl sofort
- 12. MySQL Reader schließt sofort
- 13. Javascript-Funktion sofort aufrufen
- 14. Lauf Jenkins Job sofort
- 15. SqlDependency wird sofort ausgelöst
- 16. Verbindungsversuch sofort abbrechen?
- 17. Bestätigungsdialog false zurück sofort
- 18. JavaFX setCursor sofort angezeigt
- 19. HttpClient.GetAsync sofort wirft TaskCanceledException
- 20. SetTimeout sofort Ausführung
- 21. Mein Hauptformular schließt sofort
- 22. WaitForSingleObject sofort signalisiert
- 23. jQuery funktioniert nicht sofort
- 24. VB.NET Process.Start() stoppt sofort
- 25. PowerPC-Baugruppe Sofort laden
- 26. BluetoothAdapter.ACTION_REQUEST_ENABLE Anrufe onActivityResult sofort
- 27. C# Thread.Sleep Aufwachen sofort
- 28. tableViewCell.roundCorners nicht sofort
- 29. Ausgegebene sofort umbrochene Ausnahmen
- 30. Wird sofort fortgesetzt?
Bitte erläutern Sie und geben Sie ein Beispiel für den Code, den Sie verwenden –