Heute habe ich jemanden in Dewen gefragt, wie man mit PHP fortfährt, nachfolgenden Code auszuführen, nachdem der Browserzugriff abgeschlossen istEs ist sehr einfach, es in PHP zu implementieren. fpm-Umgebung. fastcgi_finish_request ist ausreichend. Wenn es sich um einen anderen Container handelt, kann der Sprung meiner Meinung nach nur durch die Ausgabe von Javascript an den Client und die anschließende Fortsetzung der Ausführung im Hintergrund erreicht werden.
Die Demo lautet wie folgt: PHP-FPM-Test ist verfügbar, Apache PHP-CGI wird nicht getestet, da keine Umgebung vorhanden ist. (Empfohlenes Lernen: PHP-Video-Tutorial)
<?php // 你要跳转的url $url = "http://www.baidu.com/"; // 如果使用的是php-fpm if(function_exists('fastcgi_finish_request')){ header("Location: $url"); ob_flush(); flush(); fastcgi_finish_request(); // Apache ? }else{ header( 'Content-type: text/html; charset=utf-8' ); if(function_exists('apache_setenv'))apache_setenv('no-gzip', '1'); ini_set('zlib.output_compression', 0); ini_set('implicit_flush', 1); echo "<script>location='$url'</script>"; ob_flush(); flush(); } // 这里是模拟你的耗时逻辑 sleep(2); file_put_contents('/tmp/test.log', 'ok');
Das obige ist der detaillierte Inhalt vonSo setzen Sie die Verarbeitung fort, nachdem der PHP-Zugriff beendet ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!