首頁 >後端開發 >PHP問題 >PHP訪問結束如何繼續處理

PHP訪問結束如何繼續處理

(*-*)浩
(*-*)浩原創
2019-10-16 11:32:472252瀏覽

今天看到dewen裡面有人問,如何用php實作瀏覽器存取結束後繼續執行後續程式碼,我寫了個demo,在php-fpm環境下非常容易實現, fastcgi_finish_request即可。 如果是其它容器,我想只能透過輸出javascript到客戶端實現跳轉,然後後台繼續執行。

PHP訪問結束如何繼續處理

demo如下,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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn