ホームページ >バックエンド開発 >PHPの問題 >PHPアクセス終了後に処理を継続する方法

PHPアクセス終了後に処理を継続する方法

(*-*)浩
(*-*)浩オリジナル
2019-10-16 11:32:472250ブラウズ

今日、dewen で誰かが php を使用して、ブラウザへのアクセスが完了した後に後続のコードを実行し続ける方法を尋ねているのを見かけました。、デモを書きました。php での実装は非常に簡単です。 -fpm 環境では、fastcgi_finish_request で十分です。 別のコンテナであれば、javascriptをクライアントに出力し、バックグラウンドで実行を続けることでしかジャンプできないと思います。

PHPアクセス終了後に処理を継続する方法

デモは以下の通りですが、php-fpmのテストは可能ですが、apache php-cgiは環境がないためテストできません。 (推奨学習: 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;);

以上がPHPアクセス終了後に処理を継続する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。