Maison > Questions et réponses > le corps du texte
J'espère que le code php pourra continuer à s'exécuter après la déconnexion du navigateur, mais j'ai essayé de nombreuses méthodes mais cela ne fonctionne pas
1 Simple et direct quelles que soient les conséquences
1
2
3.
4
5
6
7
8
9
10
<?php
ignore_user_abort();//Fermez le navigateur et le script PHP peut continuer à s'exécuter.
set_time_limit(0);// Grâce à set_time_limit(0), le programme peut être exécuté sans limite
ini_set('memory_limit','512M'); //Définir la limite de mémoire
$interval=60*30;/ /Courir toutes les demi-heures
do {
//ToDo
sleep($interval);//Attendre 5 minutes
}
while(true);
Inconvénients : Une fois démarré, il ne peut pas être contrôlé à moins que l'hôte PHP ne soit terminé. N'utilisez pas cette méthode, sauf si vous êtes un hacker.
II Simple et contrôlable
6
.7
8
9
1 0
11
12
13
14
15
16
17
18
19
20
config.php
<?php
return 1;
?>
cron.php
ignore_user_abort();//Fermez le navigateur et le script PHP peut continuer à s'exécuter
.set_time_limit(0);//Vous pouvez utiliser set_time_limit(0) Laisser le programme s'exécuter sans limite
$interval=60*30;//Exécuter toutes les demi-heures
do{
$run = include 'config.php' ;
if(!$run) die('process abort');
//ToDo
sleep($interval);//Attendez 5 minutes
}
while(true);
en modifiant le retour 0 de config.php, pour arrêter le programme. Un moyen réalisable est d'interagir avec le fichier config.php et un formulaire spécial, et de définir certaines variables via la page HTML pour la configuration
Inconvénients : Il occupe des ressources système et fonctionne pendant une longue période, ce qui peut entraîner des dangers cachés inattendus. Par exemple, des problèmes de gestion de la mémoire.
Trois types simples améliorés
1
8
9
.
<? php
$time=15;
$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
/*
fonction
*/
veille ($time);
file_get_contents($url);
?> Le temps d'exécution d'un script PHP ne sera pas trop long. Il n'est pas limité par time_out
Parce que chaque cycle du fichier php est exécuté indépendamment, cette méthode évite la limitation de time_out. Mais il est préférable d'être la même que ci-dessus. Ajoutez le code de contrôle .cofig.php pour pouvoir terminer le processus.
La méthode ci-dessus est inutile après le test. Le code s'arrêtera toujours automatiquement après quelques minutes d'exécution. Personnellement, je souhaite qu'il s'exécute 24 heures sur 24. Existe-t-il d'autres méthodes ? Ou existe-t-il un site Web capable de fournir un service qui ouvre automatiquement des pages Web, afin que mon code puisse être démarré de temps en temps ?
大瓶可乐@php.cn2022-06-07 17:21:46
Veux-tu être un reptile ? Vous pouvez effectuer un saut de pagination et passer au suivant après l'exécution !