2008-09-17 18 views
6

apache ve mod_php ve mod_php kullanırken, tarayıcının bağlantıyı uzun bir PHP komut dosyasının yürütülmesi sırasında kapatıp kapatılmadığını algılamanın mümkün olup olmadığını bilen var mı? Örneğin PHP'de kapalı tarayıcı bağlantısı algılandı

, tek bir tarayıcı bunu kapatılmasından sonra kendisine yazma çalışırsa Java yılında, HttpOutputStream bir exception atacağım - Ya checkError() olumsuz yanıt verecektir.

cevap

7
+0

Veriler çıktığında ve ignore_user_abort (false) olsa bile, Fedora22, PHP 5.6.12'de çalışmaz. – sivann

1

http://nz.php.net/register-shutdown-function

Muhtemelen daha az karmaşık Kullanımı sadece bir komut dosyası ölmek ve bir kullanıcı sonlandırıldığında ele istiyorum.

(Yani: Bu uzun bir arama olsaydı, bu size operasyon döngüleri, bir avuç olacaktır) en az PHP4 olarak

2

, connection_aborted ve komut dosyası (kullanarak tarayıcıya herhangi bir çıktı gönderdikten sonra connection_status sadece çalıştı: flush() | ob_flush()). Ayrıca doğru zamanlanmış sonuçlar beklemeyin.

Diğer tarafta hala bekleyen birinin olup olmadığını kontrol etmek çoğunlukla yararlıdır.

+0

'Çoğunlukla hala diğer tarafta bekleyen birinin olup olmadığını kontrol etmek yararlıdır. ': Nasıl? – cYrus

+0

Nasıl: "bir şey eko" veya bir başlık(), 'flush()' çağrısı yapın ve daha sonra, HTTP istemcisinin hala "dinlemeyi" mi, yoksa zaman aşımını mı olduğunu belirlemek için connection_aborted() öğesini kullanabilirsiniz. – Willem