3
我有下面的代碼,運行一直運行(直到被殺死)的過程,並顯示結果(使用下面尾巴-F只是作爲說明):如何有網頁停止長時間運行的進程
<?php
$cmd = "tail -F /var/log/whatever.log";
set_time_limit(0);
$handle = popen($cmd, "r");
if (ob_get_level() == 0)
ob_start();
while(!feof($handle)) {
$buffer = fgets($handle);
echo $buffer . "<br />";
ob_flush();
flush();
sleep(1);
}
pclose($handle);
ob_end_flush();
?>
這類工作,我的過程運行,但它停止加載頁面,關閉選項卡等時繼續運行。
有沒有一些機制,我可以利用停止進程,當我沒有顯示頁?我確定有,但不清楚。
嘗試http://php.net/manual/en/refs.fileprocess.process.php或http://php.net/manual/en/book.pthreads。 php – 2015-02-10 14:46:29
Linux或Windows? – John 2015-02-10 14:47:24
可能會在循環中添加http://php.net/manual/en/function.connection-status.php或http://php.net/manual/en/function.connection-aborted.php檢查。 – 2015-02-10 15:02:36