Cara Melumpuhkan Penimbalan Output dalam PHP
Masalahnya
Apabila menstrim data daripada kamera web menggunakan fungsi cetakan PHP, beberapa penimbalan nampaknya berlaku . Pada kadar bingkai yang rendah, suapan membeku dan kemudian memaparkan berbilang bingkai dengan pantas. Isu ini disyaki berpunca daripada penimbal keluaran.
Penyelesaian
Langkah 1: Lumpuhkan penimbalan output
-
Secara global , dengan melumpuhkan output_buffering dalam konfigurasi php.ini atau Apache:
php_flag "output_buffering" Off
- Untuk skrip tertentu, panggil sama ada ob_end_flush() atau ob_end_clean().
Langkah 2: Lumpuhkan penimbalan output peringkat pelayan
- Panggil ob_implicit_flush() pada permulaan skrip.
- Panggil flush() selepas setiap pernyataan yang menghasilkan output.
Penjelasan
PHP menggunakan dua lapisan penimbal: penimbal output dan penimbal tulis/pelayan.
Penimbal Output
- Dikawal oleh ob_start(), ob_end_flush(), dan ob_end_clean().
- Menampan output ke badan tindak balas.
- Had lalai ialah 4096 bait.
- Lumpuhkan secara global dengan menetapkan output_buffering kepada Off atau setempat dengan memanggil ob_end_clean()/ob_end_flush().
Tulis Penimbalan dan Penimbalan Pelayan
- Dikawal oleh flush().
- Output penimbal daripada PHP dan hujung belakang (pelayan web atau CGI).
- Mungkin dipengaruhi oleh skema penimbalan pelayan web.
- Dayakan pembilasan tersirat dengan memanggil ob_implicit_flush() atau menetapkan implicit_flush kepada Hidup dalam php.ini (tidak disyorkan kerana kemungkinan implikasi prestasi).
Atas ialah kandungan terperinci Adakah Penimbalan Output Menyebabkan Suapan Kamera Web Saya Membeku?. 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