Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Melaksanakan Kod PHP Selepas Menghantar Respons HTTP?

Bagaimanakah Saya Boleh Melaksanakan Kod PHP Selepas Menghantar Respons HTTP?

Susan Sarandon
Lepaskan: 2024-12-30 22:19:11
asal
703 orang telah melayarinya

How Can I Execute PHP Code After Sending an HTTP Response?

Melaksanakan PHP Selepas Penghantaran Respons

Skrip PHP sering menghadapi keperluan untuk memproses data selanjutnya selepas membalas permintaan pelayan. Satu senario sedemikian melibatkan pengendalian parameter mesej masuk ("ID_OF_MESSAGE" dan "TEXT_OF_MESSAGE") dan menjana respons dengan param "ANSWER_TO_ID" dan "RESPONSE_MESSAGE".

Walau bagaimanapun, menghantar respons HTTP 200 kepada pelayan akan serta-merta menandakan mesej seperti yang dihantar pada bahagian pelayan. Ini menimbulkan dilema kerana penjanaan respons segera adalah penting.

Untuk mengatasinya, anda boleh:

ignore_user_abort(true); //optional
set_time_limit(0);

ob_start();
// Handle initial processing
echo $response; // Send the response
header('Connection: close');
header('Content-Length: '.ob_get_length());
ob_end_flush();
@ob_flush();
flush();
fastcgi_finish_request(); //required for PHP-FPM (PHP > 5.3.3)

// Continue processing after request dispatch
die(); // Ensure script termination
Salin selepas log masuk

Dengan menetapkan ignore_user_abort() dan set_time_limit(0), skrip boleh terus dilaksanakan selama-lamanya . Fungsi ob_* menghantar pengepala dan badan respons serta-merta. Pernyataan die() menamatkan skrip, yang diperlukan untuk mengelakkan pelaksanaan infiniti apabila set_time_limit(0) digunakan.

Teknik ini membolehkan anda mengendalikan permintaan masuk, menghantar respons dan terus memproses skrip PHP anda tanpa menunggu untuk penyemak imbas menerima respons penuh.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Kod PHP Selepas Menghantar Respons HTTP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan