2014-01-17 4 views
3

로드하는 데 오랜 시간이 걸리는 PHP/Apache 페이지가 있습니다. 기본적으로, 다음과 같습니다HTTP 클라이언트 연결이 끊어 졌는지 확인하십시오.

그것은 클라이언트가 1 단계와 2 단계 사이의 처리, 말의 중간에 끊어 것을 수시로 발생
<?php 
     doHeavyStuff_1(); 
     doHeavyStuff_2(); 
     doHeavyStuff_3(); 
     printResults(); 
?> 

. PHP가 클라이언트가 여전히 연결되어 있는지 확인하고 그렇지 않은 경우 추가 처리를 중지하는 방법이 있습니까? 내 코드는 다음과 같아야한다.

<?php 
     doHeavyStuff_1(); 
     if(<clientDisconnected>) die; 
     doHeavyStuff_2(); 
     if(<clientDisconnected>) die; 
     doHeavyStuff_3(); 
     if(<clientDisconnected>) die; 
     printResults(); 
?> 

답변

1

일반적으로 PHP (apache 모듈)는 사용자가 연결을 끊으면 자동으로 중지되어야한다. 일할 필요가 없습니다.

관심이 있다면 : PHP가 계속 처리되기를 원한다면, 기능이 ignore_user_abort()입니다. 설명서 페이지와 특히 주석을 사용하여 어떻게 사용하고 어떤 문제가 발생할 수 있는지 알아야합니다.

+0

클라이언트가 연결을 끊으면 추가 처리를 중지하려고합니다. ignore_user_abort는 그 반대입니다. –

+1

@WayneWhitty 오, 나는 그것을 보지 못했습니다. 그 상황에서는 아무것도 필요하지 않습니다. PHP는 자동으로 자동 완성됩니다. – hek2mgl

관련 문제