Maison  >  Article  >  développement back-end  >  Comment définir le temps d'attente en php

Comment définir le temps d'attente en php

PHPz
PHPzoriginal
2023-03-29 11:34:413445parcourir

Lors du développement avec PHP, vous devez parfois effectuer des opérations à long terme, telles que des requêtes réseau, des requêtes de base de données, des opérations sur les fichiers, etc. Dans ce cas, le délai d'attente par défaut de PHP peut ne pas être suffisant pour terminer ces opérations, provoquant une erreur du programme. Afin de résoudre ce problème, nous devons définir le délai d'attente de PHP.

Le délai d'attente de PHP fait référence au temps d'attente maximum lorsqu'un script PHP est exécuté s'il dépasse ce temps, il sera terminé de force. Par défaut, le délai d'attente de PHP est de 30 secondes, qui peut être ajusté en modifiant le fichier php.ini.

  1. Modifier le fichier php.ini

Tout d'abord, nous devons trouver le fichier php.ini. Sous les systèmes Linux, php.ini se trouve généralement dans le répertoire /etc/php/[version]/cli/. Sous les systèmes Windows, php.ini se trouve généralement dans le répertoire d'installation de PHP.

Ouvrez le fichier php.ini et recherchez les deux paramètres suivants :

max_execution_time = 30
max_input_time = 60

Parmi eux, max_execution_time représente le temps d'exécution maximum du script PHP (en secondes), la valeur par défaut est de 30 secondes ; max_input_time représente le script PHP recevant le POST, GET, FILE, etc. Temps maximum en secondes pour saisir les données, la valeur par défaut est de 60 secondes.

Nous pouvons modifier les valeurs de ces deux paramètres aux valeurs dont nous avons besoin, par exemple :

max_execution_time = 60
max_input_time = 120

Cela rendra le temps d'exécution maximum du script PHP de 60 secondes et le temps de saisie maximum de 120 secondes.

  1. Définir le délai d'attente dans le code

En plus de modifier le fichier php.ini, nous pouvons également définir le temps d'attente d'expiration dans le code PHP. En PHP, on peut utiliser la fonction set_time_limit pour définir le temps d'exécution maximum du script.

Par exemple, le code suivant fixera le temps d'exécution maximum d'un script PHP à 60 secondes :

set_time_limit(60);

Si on veut modifier le paramètre max_input_time dans le code, on peut utiliser la fonction ini_set.

Par exemple, le code suivant définira le temps maximum pendant lequel un script PHP reçoit une entrée à 120 secondes :

ini_set('max_input_time', 120);

Il convient de noter que ces paramètres ne prennent effet que dans le script actuel. Après avoir quitté le script actuel, le délai d'attente. sera restauré dans php.ini La valeur configurée dans le fichier.

  1. Utilisez la fonction ignore_user_abort

PHP fournit également une fonction ignore_user_abort, qui permet aux scripts PHP de continuer à s'exécuter après la déconnexion du client. Cette fonction est très utile lorsque vous travaillez avec des scripts de longue durée.

Par exemple, le code suivant configurera le script PHP pour qu'il continue à s'exécuter après la déconnexion du client :

ignore_user_abort(true);

Il convient de noter qu'après avoir défini la fonction ignore_user_abort, si le client se déconnecte, le script PHP continuera à s'exécuter, mais rien peut être envoyé au client.

Résumé

Dans le développement PHP, le temps d'attente est un problème très important et doit être défini en fonction de situations spécifiques. Nous pouvons ajuster le délai d'attente de PHP en modifiant le fichier php.ini, en définissant le délai d'attente dans le code, en utilisant la fonction ignore_user_abort, etc. pour gérer les scripts de longue durée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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