Jadual Kandungan
register_shutdown_function AND fastcgi_finish_request,registershutdownhook
register_shutdown_function
fastcgi_finish_request
Rumah pembangunan bahagian belakang tutorial php register_shutdown_function AND fastcgi_finish_request,registershutdownhook_PHP教程

register_shutdown_function AND fastcgi_finish_request,registershutdownhook_PHP教程

Jul 12, 2016 am 08:59 AM
and fastcgi function request shutdown

register_shutdown_function AND fastcgi_finish_request,registershutdownhook

在php中又两个方法都是在请求快结束的时候执行。方法名分别是 register_shutdown_function和fastcgi_finish_request。虽然执行的时机差不多,但是功能和应用场景不一样。比较两个方法的区别不是本文的重点。本文的重点的说明两个方法的应用场景。

register_shutdown_function

功能:

注册一个方法,当一个请求request执行完毕时,调用这个注册的方法。注意,哪怕在执行过程中发生error导致本次请求被强制退出,注册的方法也会执行。

应用场景一:

可以利用他的特性,捕获一些错误的一些详细信息。示例代码如下:

<span>function</span><span> catch_error(){
</span><span>$error</span> =<span> error_get_last();
</span><span>if</span>(<span>$error</span><span>){
</span><span>var_dump</span>(<span>$error</span><span>);
}
}
</span><span>register_shutdown_function</span>("catch_error"<span>);
</span><span>ini_set</span>('memory_limit','1M'<span>);
</span><span>$content</span> = <span>str_repeat</span>("aaaaaaaaaaaaaaaaaaaaaaa",100000<span>);
</span><span>echo</span> "aa";
Salin selepas log masuk

输出信息大概如下:

<p>array(4) { ["type"]=> int(1) ["message"]=> string(80) "Allowed memory size of 1048576 bytes exhausted (tried to allocate 2300001 bytes)" ["file"]=> string(39) "/test.php" ["line"]=> int(13) }</p>
Salin selepas log masuk

可见,上面的代码正常的捕捉了内存不足的错误。

应用场景二
检查请求是否正常关闭。示例代码如下:

<span>function</span><span> monitor(){
</span><span>global</span> <span>$is_end</span><span>;
</span><span>if</span>(<span>$is_end</span> == <span>true</span><span>){
</span><span>echo</span> "success"<span>;
}</span><span>else</span><span>{
</span><span>echo</span> "fail"<span>;
}
}
</span><span>register_shutdown_function</span>("monitor"<span>);
</span><span>$is_end</span> = <span>false</span><span>;
</span><span>die</span><span>();
</span><span>$is_end</span> = <span>true</span>;
Salin selepas log masuk

页面输出结果为:fail

可见,即便是调用了die函数。注册的monitor函数也正常执行了。

fastcgi_finish_request

功能:
flush数据到客户端。调用这个方法后,再有任何输出内容,都不会输出到客户端。

应用场景:

如果一个请求的处理内容中,有一部分是不需要发送到客户端时,就可以先生成输出到客户端的内容,然后调用此方法。方法被调用后,内容就会输出到客户端。而不需要输出到客户端的内容,可以放在此方法后。这样可以提高响应速度。示例代码如下:

<span>echo</span> "a"<span>;
fastcgi_finish_request();
</span><span>echo</span> "b"<span>;
</span><span>file_put_contents</span>("/tmp/test","abc.com"<span>);
</span><span>die</span><span>();
</span><span>file_put_contents</span>("/tmp/test2","测试数据");
Salin selepas log masuk

页面输出结果为:a
可见,fastcgi_finish_request方法后的echo “b” 并没有输出到客户端。但是你会发现在/tmp/test目录下正常的创建了文件。但是/tmp/bo56文件没创建

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1097792.htmlTechArticleregister_shutdown_function AND fastcgi_finish_request,registershutdownhook 在php中又两个方法都是在请求快结束的时候执行。方法名分别是 register_shutdown_...
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bolehkah arahan penutupan linux ditutup serta-merta? Bolehkah arahan penutupan linux ditutup serta-merta? Jan 28, 2023 pm 05:26 PM

Penutupan perintah penutupan Linux boleh digunakan untuk menutup serta-merta. Pengguna akar hanya perlu melaksanakan perintah "shutdown -h now". Arahan penutupan boleh digunakan untuk melaksanakan proses penutupan dan menghantar mesej kepada semua program yang dijalankan oleh pengguna sebelum mematikan Perintah penutupan memerlukan pengguna akar pentadbir sistem untuk menggunakannya.

Apakah maksud fungsi? Apakah maksud fungsi? Aug 04, 2023 am 10:33 AM

Fungsi bermaksud fungsi. Ia adalah blok kod yang boleh digunakan semula dengan fungsi tertentu Ia boleh menerima parameter input, melakukan operasi tertentu, dan mengembalikan hasil daripada blok yang boleh digunakan semula. kod untuk meningkatkan kebolehgunaan semula dan kebolehselenggaraan kod.

3 Cara untuk Menyediakan Penutupan Automatik dalam Windows 10/11 3 Cara untuk Menyediakan Penutupan Automatik dalam Windows 10/11 May 01, 2023 pm 10:40 PM

Dalam dunia yang sibuk, kami mahu mengautomasikan perkara yang anda ingin cetuskan secara tetap atau tepat pada masanya. Automasi membantu mengawal tugas dan mengurangkan usaha anda dalam melaksanakannya. Salah satu daripada tugas ini mungkin adalah untuk menutup komputer anda. Anda mungkin mahu komputer anda dimatikan dengan kerap, atau anda mungkin mahu ia dimatikan pada masa tertentu dalam sehari, atau pada hari tertentu dalam minggu, atau anda mungkin mahu ia dimatikan sekaligus. Mari lihat cara menetapkan pemasa supaya sistem dimatikan secara automatik. Kaedah 1: Gunakan kotak dialog Run Langkah 1: Tekan Win+R, taip shutdown-s-t600 dan klik OK. Nota: Dalam arahan di atas, 600 mewakili masa dalam saat. Anda boleh mengubahnya mengikut keperluan. Ia hendaklah sentiasa dalam beberapa saat, bukan minit atau jam

php request什么意思 php request什么意思 Jul 07, 2021 pm 01:49 PM

request的中文意思为“请求”,是php中的一个全局变量,是一个包含了“$_POST”、“$_GET”和“$_COOKIE”的数组。“$_REQUEST”变量可以获取POST或GET方式提交的数据、COOKIE信息。

Bagaimana untuk menetapkan arahan penutupan berjadual dalam Linux Bagaimana untuk menetapkan arahan penutupan berjadual dalam Linux Feb 18, 2024 pm 11:55 PM

Apakah arahan penutupan berjadual Linux apabila menggunakan sistem Linux, kita selalunya perlu menjadualkan penutupan, seperti menutup secara automatik selepas memuat turun sejumlah besar fail, atau mematikan pelayan secara automatik apabila ia tidak lagi digunakan. Dalam sistem Linux, penutupan berjadual boleh dilaksanakan menggunakan arahan "tutup". Perintah "shutdown" membolehkan pengguna menutup atau memulakan semula sistem dan menetapkan masa tunda. Dengan menambahkan parameter pada arahan, anda boleh melaksanakan fungsi penutupan berjadual. Format asas arahan adalah seperti berikut: penutupan

Penutupan MySQL secara tidak dijangka - Bagaimana untuk menyelesaikan ralat MySQL: MySQL ditutup secara tidak dijangka Penutupan MySQL secara tidak dijangka - Bagaimana untuk menyelesaikan ralat MySQL: MySQL ditutup secara tidak dijangka Oct 05, 2023 pm 02:42 PM

MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan yang digunakan secara meluas dalam pelbagai laman web dan aplikasi. Walau bagaimanapun, anda mungkin menghadapi pelbagai masalah semasa menggunakan MySQL, salah satunya adalah penutupan MySQL tanpa diduga. Dalam artikel ini, kami akan membincangkan cara menyelesaikan masalah ralat MySQL dan menyediakan beberapa contoh kod khusus. Apabila MySQL dimatikan secara tidak dijangka, kita harus menyemak log ralat MySQL terlebih dahulu untuk memahami sebab penutupan. Biasanya, log ralat MySQL terletak dalam direktori pemasangan MySQL.

Cara menggunakan fungsi urllib.request.urlopen() untuk menghantar permintaan GET dalam Python 3.x Cara menggunakan fungsi urllib.request.urlopen() untuk menghantar permintaan GET dalam Python 3.x Jul 30, 2023 am 11:28 AM

Cara menggunakan fungsi urllib.request.urlopen() dalam Python3.x untuk menghantar permintaan GET Dalam pengaturcaraan rangkaian, kita selalunya perlu mendapatkan data daripada pelayan jauh dengan menghantar permintaan HTTP. Dalam Python, kita boleh menggunakan fungsi urllib.request.urlopen() dalam modul urllib untuk menghantar permintaan HTTP dan mendapatkan respons yang dikembalikan oleh pelayan. Artikel ini akan memperkenalkan cara menggunakan

Apakah objek Permintaan dalam PHP? Apakah objek Permintaan dalam PHP? Feb 27, 2024 pm 09:06 PM

Objek Permintaan dalam PHP ialah objek yang digunakan untuk mengendalikan permintaan HTTP yang dihantar oleh klien ke pelayan. Melalui objek Permintaan, kami boleh mendapatkan maklumat permintaan pelanggan, seperti kaedah permintaan, maklumat pengepala permintaan, parameter permintaan, dsb., untuk memproses dan membalas permintaan tersebut. Dalam PHP, anda boleh menggunakan pembolehubah global seperti $_REQUEST, $_GET, $_POST, dll. untuk mendapatkan maklumat yang diminta, tetapi pembolehubah ini bukan objek, tetapi tatasusunan. Untuk memproses maklumat permintaan dengan lebih fleksibel dan mudah, anda boleh

See all articles