Maison  >  Questions et réponses  >  le corps du texte

Comment exécuter automatiquement le code php sur le serveur Win ?

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 ?

朱887 Il y a quelques jours1618

répondre à tous(4)je répondrai

  • 大瓶可乐@php.cn

    大瓶可乐@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 !

    répondre
    0
  • 朱

    Je l'ai également essayé. Le test a révélé que le code sautait deux fois et s'arrêtait automatiquement. J'ai exécuté le programme une fois, puis j'ai écrit le numéro dans le fichier txt. Cette méthode n'a que deux nombres dans le fichier de test, ce qui signifie qu'elle n'a sauté que deux fois. puis je me suis arrêté.

    · 2022-06-07 20:06:23
  • 大瓶可乐@php.cn

    大瓶可乐@php.cn2022-06-07 17:15:10

    Vous pouvez essayer les tâches planifiées Windows

    répondre
    0
  • 大瓶可乐@php.cn

    大瓶可乐@php.cn2022-06-07 17:14:46

    php n'est pas adapté à cette tâche

    répondre
    0
  • Annulerrépondre