Tarayıcı uzağa gittiğinde PHP söyleyebilir misiniz?

3 Cevap

Ben bir tarayıcıya göndermek için bir veri akışı üreten kulüpler ve kullanıcı tarayıcıyı kapatırsa, ben akımının geri kalanını üreten veya gönderme rahatsız gerekmez PHP içinde söyleyebilirsiniz? Bu döngü içine bir şey eklemek istiyorum:

while (!feof($pipes[1])) {
   echo fgets($pipes[1]);
}

Benim geri dönüş planı tarayıcı verilerini üreten bulunuyor süreci öldürmek için başka bir PHP sayfası vurmak için bir JavaScript onunload kullanmak zorunda, ama hiçbir yerde yankılanan olduğumda PHP söyleyebilirdi eğer temiz olurdu.

3 Cevap

Yürütme durur zaman sözde yürütülen register_shutdown_function() adında bir fonksiyonu da var. Ben aslında hiç kullanmadım, bu yüzden ne kadar iyi çalıştığını kefil olmaz, ama ben bütünlüğü için söz düşündüm.

Ben (Hayır ajax) normal yüklü olduğunda bu komut otomatik olarak iptal inanıyorum. Eğer XMLHttpRequest kullanarak php aracılığıyla uzun yoklama çeşit uygulamak istiyorsanız Ama o zaman php bunu algılayamaz çünkü javascript çeşit ile bunu yapmak zorunda olacağını düşünüyorum. Ayrıca kesin davayı bilmek istiyorum.

Bu cevaplar arıyordu ne doğru beni çekti. Alttayatan onu öldürmek için özel bir dikkat gereklidir. Ben döngü dışarı atlamak gerekiyordu. Tekrar teşekkürler, yığın taşması.

 while (!feof($pipes[1]) && !connection_aborted())
 {
  echo fgets($pipes[1]);
 }

 if (connection_aborted())
 {
  exec('kill -4 '.$mypid);
 }