Duruma göre değişir.
Dan http://us3.php.net/manual/en/features.connection-handling.php:
When a PHP script is running normally
the NORMAL state, is active. If the
remote client disconnects the ABORTED
state flag is turned on. A remote
client disconnect is usually caused by
the user hitting his STOP button.
You can decide whether or not you want
a client disconnect to cause your
script to be aborted. Sometimes it is
handy to always have your scripts run
to completion even if there is no
remote browser receiving the output.
The default behaviour is however for
your script to be aborted when the
remote client disconnects. This
behaviour can be set via the
ignore_user_abort
php.ini directive as
well as through the corresponding
php_value ignore_user_abort
Apache
httpd.conf directive or with the
ignore_user_abort()
function.
Bu sorunuzun cevabı "kullanıcı sayfasını bırakırsa Evet, komut dosyası sonlanacaktır" olduğunu söylemek gibi görünüyor.
Ancak fark kullanılan backend SAPI bağlı olarak (örneğin, mod_php
), php cannot detect that the client has aborted the connection until an attempt is made to send information to the client. Uzun koşu komut bir sorunu yoksa flush()
komut kullanıcı bağlantıyı kapattı bile yayınlanmaya devam edebilir.
Eğer do yakalamak için bu çağrıları neden olacak ve müşteri için onları göndermek olmaz output buffering, sahip flush()
periyodik aramalar sorunu şeyleri bile komplike script zaten tamamlar kadar!
Further şeyler zorlaştıran Eğer yanıtını tampon Apache işleyicileri yüklü varsa (örneğin, mod_gzip
) sonra tekrar php bağlantısı kapalı olduğunu algılamaz ve komut kamyon devam edecektir .
Vay.