Php connection_status

3 Cevap

Ben bir Uyarıcı hizmet için bir senaryo yazmak. Ben bağlantı durumunu almak için php connection_status işlevi kullanılır. Script inf döngü gerektirir çünkü. Bazı örnek bakmak ve diğer komut deneyin ama connection_status işlev her zaman 0 döndürür. Ben tüm komut yolları denedim düşünüyorum. Lütfen bana yardımcı olun.

<?php
ignore_user_abort (TRUE);

$x=0;
while ($x++ < 20) {
   print $x;
   sleep (1);
}

switch (connection_status ()) {
case CONNECTION_NORMAL:
   $status = 'Normal';
   break;
case CONNECTION_ABORTED:
   $status = 'User Abort';
   break;
case CONNECTION_TIMEOUT:
   $status = 'Max Execution Time exceeded';
   break;
case (CONNECTION_ABORTED & CONNECTION_TIMEOUT):
   $status = 'Aborted and Timed Out';
   break;
default:
   $status = 'Unknown';
   break;
}

file_put_contents('test.txt',$status);
?>

Benim sistemi;

php-5.3.1-1 ve apache-2.2.14-1

3 Cevap

Tüm cevaplar için teşekkürler! Ben sorunu çözmek için bir yol bulmak. Olabilir çıktı tamponu bu sorunun nedenidir. I) (floş çalıştırın, ob_flush () fonksiyonlarını çıktı sonra sorunu çözmek! Tekrar teşekkürler çok.

<?php
    ignore_user_abort (TRUE);

    $x=0;
    while ($x++ < 10) {
      print " ";
      flush();
      ob_flush();
      sleep (1);
    }

    switch (connection_status ()) {
    case CONNECTION_NORMAL:
       $status = 'Normal';
       break;
    case CONNECTION_ABORTED:
       $status = 'User Abort';
       break;
    case CONNECTION_TIMEOUT:
       $status = 'Max Execution Time exceeded';
       break;
    case (CONNECTION_ABORTED & CONNECTION_TIMEOUT):
       $status = 'Aborted and Timed Out';
       break;
    default:
       $status = 'Unknown';
       break;
    }

    file_put_contents('testa.txt',$status);
    ?>

baş ob_implicit_flush(); eklemeyi deneyin

Bu, benim uzaya test ... işleri eğer kullanıcı yakın pencereler, ancak kullanıcı ESC tuşuna işe yaramazsa, ben gerçekten neden bilmiyorum ...

<?php
ignore_user_abort (TRUE);

$x=0;
while (1) {
    echo "\n";
    if (connection_status()!=0){
                file_put_contents('test.txt',connection_status());
                die();
         }
}
      file_put_contents('test.txt',connection_status());
?>  

Fonksiyonu connection_status, bir int değer döndürür ...