Inhaltsverzeichnis
register_shutdown_function
fastcgi_finish_request
Heim Backend-Entwicklung PHP-Tutorial register_shutdown_function AND fastcgi_finish_request

register_shutdown_function AND fastcgi_finish_request

Jul 29, 2016 am 09:04 AM
error function request shutdown

在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";
Nach dem Login kopieren

输出信息大概如下:

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) }

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

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

<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>;
Nach dem Login kopieren

页面输出结果为: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","测试数据");
Nach dem Login kopieren

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

以上就介绍了register_shutdown_function AND fastcgi_finish_request,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Lösung für PHP Schwerwiegender Fehler: Aufruf der undefinierten Methode PDO::prepare() in Lösung für PHP Schwerwiegender Fehler: Aufruf der undefinierten Methode PDO::prepare() in Jun 22, 2023 pm 06:40 PM

PHP ist eine beliebte Webentwicklungssprache, die schon seit langem verwendet wird. Die in PHP integrierte PDO-Klasse (PHP Data Object) ist für uns eine gängige Möglichkeit, bei der Entwicklung von Webanwendungen mit der Datenbank zu interagieren. Ein Problem, auf das einige PHP-Entwickler jedoch häufig stoßen, besteht darin, dass sie bei Verwendung der PDO-Klasse zur Interaktion mit der Datenbank eine Fehlermeldung wie diese erhalten: PHPFatalerror:CalltoundefinedmethodPDO::prep

Was soll ich tun, wenn bei der Verwendung von Axios in einer Vue-Anwendung „Uncaught (in Promise) Error: Request failed with status code 500' auftritt? Was soll ich tun, wenn bei der Verwendung von Axios in einer Vue-Anwendung „Uncaught (in Promise) Error: Request failed with status code 500' auftritt? Jun 24, 2023 pm 05:33 PM

Axios wird häufig in Vue-Anwendungen verwendet. Axios ist ein Promise-basierter HTTP-Client, der in Browsern und Node.js verwendet werden kann. Während des Entwicklungsprozesses erscheint manchmal die Fehlermeldung „Uncaught(inpromise)Error: Requestfailedwithstatuscode500“. Für Entwickler kann diese Fehlermeldung schwer zu verstehen und zu lösen sein. In diesem Artikel wird dies untersucht

Lösen Sie das Problem „Fehler: Unvollständiger Typ ist nicht zulässig' im C++-Code Lösen Sie das Problem „Fehler: Unvollständiger Typ ist nicht zulässig' im C++-Code Aug 26, 2023 pm 08:54 PM

Lösen Sie das „error:incompletetypeisnotallowed“-Problem im C++-Code. Während des C++-Programmierungsprozesses treten manchmal einige Kompilierungsfehler auf. Dieser Fehler wird normalerweise durch die Arbeit mit einem unvollständigen Typ verursacht. In diesem Artikel wird die Ursache dieses Fehlers erläutert und verschiedene Lösungen bereitgestellt. Zunächst einmal: Ich

Kann der Linux-Shutdown-Befehl sofort heruntergefahren werden? Kann der Linux-Shutdown-Befehl sofort heruntergefahren werden? Jan 28, 2023 pm 05:26 PM

Mit dem Linux-Befehl „shutdown“ kann der Computer sofort heruntergefahren werden. Der Root-Benutzer muss lediglich den Befehl „shutdown -h now“ ausführen. Der Shutdown-Befehl kann verwendet werden, um den Shutdown-Vorgang durchzuführen und vor dem Herunterfahren Nachrichten an alle von Benutzern ausgeführten Programme zu senden. Der Shutdown-Befehl erfordert die Verwendung durch den Systemadministrator-Root-Benutzer.

0271: Was soll ich tun, wenn der Computer aufgrund eines Echtzeituhrfehlers nicht eingeschaltet werden kann? 0271: Was soll ich tun, wenn der Computer aufgrund eines Echtzeituhrfehlers nicht eingeschaltet werden kann? Mar 13, 2023 am 11:30 AM

Lösung für „0271: Echtzeituhrfehler“, der nicht gestartet werden kann: 1. Drücken Sie F1 und verschieben Sie in der angezeigten Benutzeroberfläche die Optionsleiste zum dritten Element „Datum/Uhrzeit“. 2. Ändern Sie die Systemzeit manuell auf die aktuelle Uhrzeit einmal; 3. Drücken Sie F10 und wählen Sie im Popup-Dialogfeld „Ja“ aus. 4. Öffnen Sie das Notebook erneut, um es normal zu starten.

Lösen Sie das Problem „Fehler: erwarteter Initialisierer vor ‚Datentyp'' im C++-Code Lösen Sie das Problem „Fehler: erwarteter Initialisierer vor ‚Datentyp'' im C++-Code Aug 25, 2023 pm 01:24 PM

Lösen Sie das „error:expectedinitializerbefore'datatype‘“-Problem in C++-Code. Beim Schreiben von Code treten manchmal Kompilierungsfehler auf. Einer der häufigsten Fehler ist „error:expectedinitializerbefore‘datatype‘“. Dieser Fehler tritt normalerweise in einer Variablendeklaration oder Funktionsdefinition auf und kann dazu führen, dass das Programm nicht korrekt kompiliert werden kann oder

So lösen Sie die PHP-Warnung: fopen(): Fehler beim Öffnen des Streams: Keine solche Datei oder kein solches Verzeichnis So lösen Sie die PHP-Warnung: fopen(): Fehler beim Öffnen des Streams: Keine solche Datei oder kein solches Verzeichnis Aug 19, 2023 am 10:44 AM

So lösen Sie PHPWarning:fopen():failedtoopenstream:Nosuchfileordirectory Bei der Verwendung von PHP-Entwicklung stoßen wir häufig auf einige Dateibetriebsprobleme, darunter „PHPWarning:fopen():failedtoopenstream:Nosuchfileordirectory“.

Was bedeutet Funktion? Was bedeutet Funktion? Aug 04, 2023 am 10:33 AM

Funktion bedeutet Funktion. Es handelt sich um einen wiederverwendbaren Codeblock mit bestimmten Funktionen. Er kann Eingabeparameter akzeptieren, bestimmte Operationen ausführen und Ergebnisse zurückgeben. Code, um die Wiederverwendbarkeit und Wartbarkeit des Codes zu verbessern.

See all articles