Ich hoffe, dass der PHP-Code weiterhin ausgeführt werden kann, nachdem der Browser die Verbindung getrennt hat, aber ich habe viele Methoden ausprobiert, aber es funktioniert nicht
1 Einfach und direkt, unabhängig von den Konsequenzen
1
2
3
4
5
6
7
8
9
10
<?php
ignore_user_abort();//Schließen Sie den Browser und das PHP-Skript kann weiter ausgeführt werden.
set_time_limit(0);// Durch set_time_limit(0) kann das Programm ohne Begrenzung ausgeführt werden
ini_set('memory_limit','512M'); //Legen Sie das Speicherlimit fest
$interval=60*30;/ /Jede halbe Stunde ausführen
do {
//ToDo
sleep($interval);//5 Minuten warten
}
while(true);
Nachteile: Einmal gestartet, es kann nicht kontrolliert werden, es sei denn, der PHP-Host ist beendet.
II Einfach und kontrollierbar
2
3
4
5
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();//Schließen Sie den Browser und das PHP-Skript kann weiter ausgeführt werden
set_time_limit(0);//Sie können set_time_limit(0) verwenden. Lassen Sie das Programm ohne Begrenzung ausführen
$interval=60*30;// Jede halbe Stunde ausführen
do{
$run = include 'config.php' ;
if(!$run) die(' Prozessabbruch');
//ToDo
sleep($interval);//5 Minuten warten
}
while(true);
durch Ändern der Rückgabe 0 von config.php, Um das Programm zu stoppen, besteht eine praktikable Möglichkeit darin, mit der Datei config.php und einem speziellen Formular zu interagieren und einige Variablen über die HTML-Seite für die Konfiguration festzulegen
Nachteile: Es belegt Systemressourcen und läuft lange, was zu unerwarteten versteckten Gefahren führen kann. Zum Beispiel Probleme mit der Speicherverwaltung
<? php
$time=15;
$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
/*
function
*/
sleep ($time);
file_get_contents($url);
?> Die Ausführungszeit eines PHP-Skripts wird nicht zu lang sein.
Da jeder Zyklus der PHP-Datei unabhängig ausgeführt wird. Diese Methode vermeidet die Einschränkung von time_out. Am besten ist es jedoch, wie oben den Steuercode .cofig.php hinzuzufügen, um den Prozess beenden zu können.
Die oben genannte Methode ist nach dem Testen immer noch nutzlos. Ich persönlich möchte, dass er 24 Stunden am Tag ausgeführt wird. Oder gibt es eine Website, die einen Dienst bereitstellt, der Webseiten automatisch öffnet, sodass mein Code von Zeit zu Zeit gestartet werden kann?
你是想做爬虫吗?你可以做一个分页跳执行完毕一个跳到下一个!
可以取试一下windows 定时任务
php 不适合干这个事情