Maison >développement back-end >Problème PHP >Comment continuer le traitement après la fin de l'accès PHP
Aujourd'hui, j'ai vu quelqu'un à Dewen demander comment utiliser php pour continuer à exécuter le code suivant une fois l'accès au navigateur terminé J'ai écrit une démo C'est très facile à implémenter dans php-. L'environnement fpm. fastcgi_finish_request suffit. S'il s'agit d'un autre conteneur, je pense que le saut ne peut être réalisé qu'en produisant du javascript sur le client, puis en poursuivant l'exécution en arrière-plan.
La démo est la suivante, le test php-fpm est disponible, apache php-cgi n'est pas testé car il n'y a pas d'environnement. (Apprentissage recommandé : Tutoriel vidéo PHP)
<?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');
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!