Table des matières
register_shutdown_function AND fastcgi_finish_request,registershutdownhook
register_shutdown_function
fastcgi_finish_request
Maison développement back-end tutoriel 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";
Copier après la connexion

输出信息大概如下:

<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>
Copier après la connexion

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

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

<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>;
Copier après la connexion

页面输出结果为: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","测试数据");
Copier après la connexion

页面输出结果为: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_...
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La commande Linux shutdown peut-elle s'arrêter immédiatement ? La commande Linux shutdown peut-elle s'arrêter immédiatement ? Jan 28, 2023 pm 05:26 PM

La commande d'arrêt Linux shutdown peut s'arrêter immédiatement. L'utilisateur root n'a qu'à exécuter la commande "shutdown -h now". La commande shutdown peut être utilisée pour effectuer le processus d'arrêt et envoyer des messages à tous les programmes exécutés par les utilisateurs avant l'arrêt. La commande shutdown nécessite que l'utilisateur root de l'administrateur système l'utilise.

Que signifie fonction ? Que signifie fonction ? Aug 04, 2023 am 10:33 AM

Fonction signifie fonction. Il s'agit d'un bloc de code réutilisable avec des fonctions spécifiques. C'est l'un des composants de base d'un programme. Il peut accepter des paramètres d'entrée, effectuer des opérations spécifiques et renvoyer des résultats. code pour améliorer la réutilisabilité et la maintenabilité du code.

3 façons de configurer l'arrêt automatique sous Windows 10/11 3 façons de configurer l'arrêt automatique sous Windows 10/11 May 01, 2023 pm 10:40 PM

Dans un monde occupé, nous souhaitons automatiser les choses que vous souhaitez déclencher régulièrement ou en temps opportun. L'automatisation aide à contrôler les tâches et réduit vos efforts pour les exécuter. L'une de ces tâches peut consister à éteindre votre ordinateur. Vous souhaiterez peut-être que votre ordinateur s'éteigne régulièrement, ou à une heure précise de la journée, ou à des jours spécifiques de la semaine, ou encore, vous souhaiterez peut-être qu'il s'éteigne d'un seul coup. Voyons comment régler une minuterie pour que le système s'arrête automatiquement. Méthode 1 : utilisez la boîte de dialogue Exécuter. Étape 1 : appuyez sur Win+R, tapez shutdown-s-t600 et cliquez sur OK. Remarque : Dans la commande ci-dessus, 600 représente le temps en secondes. Vous pouvez le modifier selon vos besoins. Cela devrait toujours être en secondes, pas en minutes ou en heures

Que signifie la requête php ? Que signifie la requête php ? Jul 07, 2021 pm 01:49 PM

La signification chinoise de request est "request". Il s'agit d'une variable globale en PHP et c'est un tableau contenant "$_POST", "$_GET" et "$_COOKIE". La variable "$_REQUEST" peut obtenir des données et des informations COOKIE soumises par POST ou GET.

Comment définir la commande d'arrêt programmé sous Linux Comment définir la commande d'arrêt programmé sous Linux Feb 18, 2024 pm 11:55 PM

Qu'est-ce que la commande d'arrêt programmé Linux ? Lorsque nous utilisons un système Linux, nous devons souvent planifier un arrêt, comme l'arrêt automatique après le téléchargement d'un grand nombre de fichiers, ou l'arrêt automatique du serveur lorsqu'il n'est plus utilisé. Sur les systèmes Linux, un arrêt programmé peut être mis en œuvre à l'aide de la commande « shutdown ». La commande « shutdown » permet à l'utilisateur d'arrêter ou de redémarrer le système et de définir un délai. En ajoutant des paramètres à la commande, vous pouvez implémenter la fonction d'arrêt programmé. Le format de base de la commande est le suivant : shutdown

Arrêt inattendu de MySQL - Comment résoudre l'erreur MySQL : MySQL s'est arrêté de manière inattendue Arrêt inattendu de MySQL - Comment résoudre l'erreur MySQL : MySQL s'est arrêté de manière inattendue Oct 05, 2023 pm 02:42 PM

MySQL est un système de gestion de bases de données relationnelles couramment utilisé dans divers sites Web et applications. Cependant, vous pouvez rencontrer divers problèmes lors de l'utilisation de MySQL, dont la fermeture inattendue de MySQL. Dans cet article, nous expliquerons comment résoudre les erreurs MySQL et fournirons quelques exemples de code spécifiques. Lorsque MySQL s'arrête de manière inattendue, nous devons d'abord vérifier le journal des erreurs MySQL pour comprendre la raison de l'arrêt. Habituellement, le journal des erreurs MySQL se trouve dans le répertoire d'installation de MySQL.

Qu'est-ce que l'objet Request en PHP ? Qu'est-ce que l'objet Request en PHP ? Feb 27, 2024 pm 09:06 PM

L'objet Request en PHP est un objet utilisé pour gérer les requêtes HTTP envoyées par le client au serveur. Grâce à l'objet Request, nous pouvons obtenir les informations de demande du client, telles que la méthode de demande, les informations d'en-tête de demande, les paramètres de demande, etc., afin de traiter et de répondre à la demande. En PHP, vous pouvez utiliser des variables globales telles que $_REQUEST, $_GET, $_POST, etc. pour obtenir les informations demandées, mais ces variables ne sont pas des objets, mais des tableaux. Afin de traiter les informations demandées de manière plus flexible et plus pratique, vous pouvez

Comment utiliser la fonction urllib.request.urlopen() pour envoyer une requête GET en Python 3.x Comment utiliser la fonction urllib.request.urlopen() pour envoyer une requête GET en Python 3.x Jul 30, 2023 am 11:28 AM

Comment utiliser la fonction urllib.request.urlopen() dans Python3.x pour envoyer une requête GET En programmation réseau, nous avons souvent besoin d'obtenir des données d'un serveur distant en envoyant une requête HTTP. En Python, nous pouvons utiliser la fonction urllib.request.urlopen() dans le module urllib pour envoyer une requête HTTP et obtenir la réponse renvoyée par le serveur. Cet article explique comment utiliser

See all articles