Melaksanakan Operasi PHP Post HTTP Penghantaran Response
Dalam PHP 5.2, apabila berjalan sebagai mod_php, menghantar respons HTTP boleh mengganggu pangkalan data yang berjalan lama permintaan dan pemprosesan e-mel. Untuk menangani isu ini, seseorang boleh menggunakan teknik yang membolehkan PHP menghantar respons HTTP yang lengkap kepada klien dan kemudian terus melaksanakan operasi untuk tempoh tambahan.
Coretan berikut menyelesaikannya:
ob_end_clean(); header("Connection: close"); ignore_user_abort(); // optional ob_start(); echo ('Text the user will see'); $size = ob_get_length(); header("Content-Length: $size"); ob_end_flush(); // Strange behaviour, will not work flush(); // Unless both are called ! session_write_close(); // Added a line suggested in the comment // Do processing here sleep(30); echo('Text user will never see');
Setelah dilaksanakan, skrip segera menghantar respons HTTP lengkap kepada klien. Ia kemudiannya mula memproses permintaan pangkalan data dan e-mel di latar belakang, yang boleh mengambil masa sehingga satu minit. Harap maklum bahawa interaksi pengguna akan terputus sebaik sahaja respons dihantar.
Atas ialah kandungan terperinci Bagaimana untuk Menjalankan Operasi PHP Selepas Menghantar Respons HTTP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!