Maison >développement back-end >Problème PHP >Comment continuer le traitement après la fin de l'accès PHP

Comment continuer le traitement après la fin de l'accès PHP

(*-*)浩
(*-*)浩original
2019-10-16 11:32:472274parcourir

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.

Comment continuer le traitement après la fin de l'accès PHP

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(&#39;fastcgi_finish_request&#39;)){
    header("Location: $url");
    ob_flush();
    flush();
    fastcgi_finish_request();
// Apache ?
}else{
    header( &#39;Content-type: text/html; charset=utf-8&#39; );
    if(function_exists(&#39;apache_setenv&#39;))apache_setenv(&#39;no-gzip&#39;, &#39;1&#39;);
    ini_set(&#39;zlib.output_compression&#39;, 0);
    ini_set(&#39;implicit_flush&#39;, 1);
    echo "<script>location=&#39;$url&#39;</script>";
    ob_flush();
    flush();
}
 
    // 这里是模拟你的耗时逻辑
    sleep(2);
    file_put_contents(&#39;/tmp/test.log&#39;, &#39;ok&#39;);

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn