나는 (큰) 비디오 파일을 검색하고 다운로드 할 수있는 웹 앱 콘텐츠 플랫폼을 개발했다. 또한 브라우저에서 직접 파일을 볼 수도 있습니다. 일부 액세스 관리를 수행하기 위해, 대신 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는 기본적으로 사용하지 않도록 설정되어 있으며 구성에서 사용하도록 설정하지 않았습니다. 하지만 line connection_status() 함수는 연결이 살아 있는지 여부를 검사하고, 그렇지 않은 경우 스크립트를 중단합니다 (추측). documentation에서
이 읽기 현재 프로세스를 볼 수없는 경우, 확인 할 수있는 로그 파일 쓰기 : http://php.net/manual/en/function.ignore -user-abort.php – vaso123
이것은 PHP와는 아무런 관련이 없습니다. PHP가 호출되는 방식입니다 (예를 들어, 아마도 웹 서버 일 것입니다). PHP 자체는 아무 문제없이 몇 시간 동안 실행될 수 있습니다. –
RTFM : http://php.net/manual/en/function.ignore-user-abort.php –