2014-01-17 4 views
3

У меня есть страница php/apache, для загрузки которой требуется много времени. В основном, это выглядит следующим образом:Сообщите, если HTTP-клиент отключен

<?php 
     doHeavyStuff_1(); 
     doHeavyStuff_2(); 
     doHeavyStuff_3(); 
     printResults(); 
?> 

Это происходит время от времени, когда клиент отсоединяется в середине обработки, скажем, между step1 и step2. Есть ли способ в 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

Смежные вопросы