Maison >développement back-end >tutoriel php >Comment résoudre le délai d'exécution de PHP
Le délai d'exécution du script par défaut en php est de 30 secondes. Si vous ne le définissez pas, il expirera après 30 secondes si votre script n'a pas été exécuté. instructions. Explication détaillée de la façon de résoudre le délai d'exécution du script PHP.
Manuel recommandé : Manuel d'auto-apprentissage complet php
Tutoriel recommandé : Tutoriel vidéo PHP
Le temps d'exécution maximum par défaut dans php.ini est de 30 secondes. Bien que la valeur de max_execution_time dans php.ini puisse être ajustée pour atteindre l'objectif, dans certains cas, il n'y a aucune condition pour modifier php. .ini. Comment résoudre ce problème.
Une façon consiste à ajouter
ini_set('max_execution_time', '0');
au script PHP pour définir le temps d'exécution à 0 (valeur infinie
Une autre) ; La première méthode consiste à exécuter le script à partir de la ligne de commande. Lors de l'exécution du script à partir de la ligne de commande, la durée d'exécution maximale est définie sur illimitée.
Modifier la limite de temps d'exécution du script de php.ini
Modifiez php.ini et modifiez la valeur max_execution_time :
max_execution_time=500 //此修改需要重新加载php.ini,需要重启web服务器生效。
Définissez le temps d'exécution du script via le . fichier htaccess
php_value max_execution_time 500
Définir le temps d'exécution maximum dans le script
ini_set('max_execution_time', 500);
Utiliser la fonction PHP pour annuler la limite de temps du script
set_time_limit(0);
set_time_limit est utilisé pour définir le délai d'attente du script. Cette fonction spécifie le délai du script Lorsque la phrase est exécutée, le programme doit être terminé dans le nombre de secondes spécifié. S'il expire, le programme se terminera avec une erreur.
Ce qui suit est un exemple. Il y a 10 000 données. Pour modifier certaines données, utilisez PHP pour effectuer le traitement étape par étape :
action. php
<?php $stid = isset($_GET['stid'])?$_GET['stid']:0; $endid = $stid + 100; $maxid = 10000; function dosomething(){ //要时间比较多的操作 …… } $sql_string=”select * from `table` where id>’$stid’ and id<=’$endid’ order by id”; $datas = getdata_bysql($sql_string); foreach($datas as $data){ //处理数据 ….. echo $id.” 处理完成. <br />”; if($id>=$maxid){exit;} } if($stid<=$maxid){ $stid = $stid + 100; $url=”action.php?stid=$stid”; echo $url; echo ‘<script language=”javascript”>location=”‘.$url.’”; </script>’; } ?>
où dosomething() est une opération qui prend du temps. Ici, nous réduisons le temps d'exécution en limitant la plage d'identifiants. Après l'exécution, l'étape suivante est automatiquement exécutée via le saut javascript
. C'est ce que fait maintenant dedecms lors de la génération de pages HTML.
Articles connexes recommandés :
1.Quel est le moyen de faire expirer le délai php
2.Comment résoudre la requête php ? délai d'expiration de l'interface
Recommandations vidéo associées :
1. Tutoriel vidéo Dugu Jiujian (4)_PHP
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!