Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mencapai Pembilasan Output Masa Nyata dalam PHP untuk Log Langsung?

Bagaimana untuk Mencapai Pembilasan Output Masa Nyata dalam PHP untuk Log Langsung?

DDD
DDDasal
2024-12-22 14:38:11242semak imbas

How to Achieve Real-Time Output Flushing in PHP for Live Logs?

Output Flushing dalam PHP: Memaparkan Log Langsung Semasa Pemprosesan

Dalam PHP, selalunya wajar untuk memaparkan output kepada penyemak imbas pengguna sebagai skrip proses, dan bukannya menunggu keseluruhan skrip selesai. Ini boleh berguna untuk memaparkan log atau kemas kini kemajuan dalam masa nyata. Walau bagaimanapun, secara lalai, PHP menimbal output, bermakna ia tidak dihantar kepada klien sehingga akhir skrip.

Adakah 'ob_flush()' Cukup?

A pendekatan biasa untuk mengeluarkan output selepas setiap panggilan gema ialah menggunakan fungsi ob_flush(). Walau bagaimanapun, ini hanya sebahagiannya menyelesaikan masalah. Walaupun ia mengepam penimbal output, ia sebenarnya tidak menghantar data kepada pelanggan.

PHP atau Apache Fault? Menyiasat Masalah

Jika ob_flush() tidak berfungsi, ia boleh menjadi masalah sama ada dengan konfigurasi PHP atau tetapan Apache. Untuk menyemak konfigurasi PHP, jalankan arahan berikut:

php -i | grep output_buffering

Ini sepatutnya menunjukkan sama ada penimbalan output didayakan dan saiz penimbal. Jika penimbalan output dilumpuhkan, itu bukan punca masalah.

Penyelesaian Terunggul

Penyelesaian muktamad kepada isu ini terletak pada menetapkan saiz penimbal output kepada 0 . Ini memberitahu PHP untuk menghantar output kepada pelanggan dengan segera tanpa menimbalnya.

ini_set('output_buffering', 0);

Akhir Fikiran

Dengan menetapkan saiz penimbal output kepada 0, anda boleh memastikan bahawa output dipadamkan selepas setiap panggilan gema, membolehkan pengguna melihat log atau kemas kini kemajuan anda dalam masa nyata.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Pembilasan Output Masa Nyata dalam PHP untuk Log Langsung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn