<?php
ob_end_clean
();
header("Connection: close");
ignore_user_abort(); // 忽略 Browser 斷線
ob_start();
$file=__FILE__; require("src.php"); /*顯示原始碼*/
/* 要給Browser的都在這邊做完-開始 */
$time_now date("H:i:s");
$time_now_s time();
$html = <<<EOF
<h2>瀏覽器已經傳完, 但是Script依然繼續做事情的方法</h2>
<p>網頁讀取完成, 但是Script不因為瀏覽器斷線而中止Script, 直到Script執行結束, Nginx需要設定 <a href="https://t.me/PHP_TW/1053">1</a> <a href="https://serverfault.com/a/574783/266397">2</a> <a href="https://t.me/PHP_TW/3389">3</a></p>
Script start time: 
{$time_now}
<br><img id='img_time' src='/_i/time.png?
{$time_now_s}'>
<script>setInterval(function(){document.getElementById('img_time').setAttribute('src','/_i/time.png?' + new Date().getTime());},500);</script>
EOF;
echo 
$html;
/* 要給Browser的都在這邊做完-結束 */

$size ob_get_length();
header("Content-Length: $size");
ob_end_flush(); // Strange behaviour, will not work
flush();        // Unless both are called !

/* 不打算給Browser 放在這邊做-開始 */
for($i=0;$i<10;$i++){
    
sleep(1);
    
$im imagecreate(15030);
  
$bg imagecolorallocate($im230230230);
  
$textcolor imagecolorallocate($im00255);
  
imagestring($im500date("H:i:s") . substr((string)microtime(), 14) , $textcolor);
  
imagepng($im,"time.png");
  
imagedestroy($im);
}
$im imagecreate(15030);
$bg imagecolorallocate($im230230230);
$textcolor imagecolorallocate($im00255);
imagestring($im500"Script End!" $textcolor);
imagepng($im,"time.png");
imagedestroy($im);
/* 不打算給Browser 放在這邊做-結束 */
?>

瀏覽器已經傳完, 但是Script依然繼續做事情的方法

網頁讀取完成, 但是Script不因為瀏覽器斷線而中止Script, 直到Script執行結束, Nginx需要設定 1 2 3

Script start time: 08:21:41