我開發了一個Web應用內容平臺,允許用戶搜索和下載(大)視頻文件。他們也可以直接在瀏覽器中觀看文件。爲了做一些訪問管理,我不直接將它們指向mp4/webm文件,而是使用PHP腳本來處理它。我的代碼主要是基於對http://www.media-division.com/php-download-script-with-resume-option/當客戶端斷開連接時,PHP腳本會中止嗎?
片段中發現的例子:
set_time_limit(0);
fseek($file, $seek_start);
while(!feof($file))
{
print(@fread($file, 1024*8));
ob_flush();
flush();
if (connection_status()!=0)
{
@fclose($file);
exit;
}
}
它基本上設置執行時間爲無限(大文件),文件讀取順序並將其推到客戶端。我的問題是:當客戶端中止下載時腳本是否中止?例如,當使用HTML5視頻播放器流式傳輸視頻並停止觀看時。
ignore_user_abort默認是禁用的,我沒有在我的配置中啓用它。但是connection_status()函數會檢查連接是否處於活動狀態,如果不是這種情況,我會中止腳本(我想)。
閱讀:http://php.net/manual/en/function.ignore -user-abort.php – vaso123
這與PHP無關,而是PHP調用的方式(即可能是webserver,在你的情況下)。 PHP本身可以運行幾個小時沒有任何問題。 –
RTFM:http://php.net/manual/en/function.ignore-user-abort.php –