PHP ignore_user_abort関数の詳細と使用例

2722 ワード

ignore_user_abortは、クライアントと切断するとスクリプトの実行が終了するかどうかを設定します.
この関数はuser-abort設定の前の値(ブール値)を返します.int ignore_user_abort ([ string $value ] )
パラメータsetting説明:オプション.trueに設定すると、ユーザーとの切断は無視され、falseに設定するとスクリプトの実行が停止します.このパラメータが設定されていない場合は、現在の設定が返されます.
注記:PHPは、クライアントに情報を送信しようとするまで、ユーザーが接続を切断したかどうかを検出しません.echo文を簡単に使用すると、flush()関数を参照して、情報の送信が保証されません.
例-1個のignore_user_abort()の例、set_に合わせるtime_Limit()関数とデッドサイクルで計画タスク機能を実現できます.
 
  
ignore_user_abort(true);
 
set_time_limit(0);
echo 'Testing connection handling in PHP';
while (1)
{
    if (connection_status() != CONNECTION_NORMAL) {
 
        break;
 
    }
    // Sleep for 10 seconds
    sleep(10);
}
?>

PHP内蔵関数研究シリーズ第2期、PHP関数ignoreを採用user_abortは計画タスクと持続的なプロセスインスタンスを実現し、ignore_を検出可能なインスタンスで議論します.user_abort()関数の役割と使い方.
ignore_user_abort()はクライアントが閉じた後もPHPコードを実行できることを実現でき、PHPプロセスがずっと実行されていることを維持することができ、いわゆる計画タスク機能と持続プロセスを実現することができ、apacheなどのサーバーが再起動したり、スクリプトが出力されたりしない限り、このPHPスクリプトはずっと実行されている状態であり、初めて見ると実用的である.しかし、コストはPHPがスクリプトを実行する持続的なプロセスであり、オーバーヘッドは大きいが、多くの予想外の機能を実現することができる.
クライアントと切断するとスクリプトの実行が終了するかどうかを設定します.
添付:もう一つの紹介
一、関数原型
 
  
int ignore_user_abort ( [bool setting] )

二、バージョン互換

   PHP 3 >= 3.0.7, PHP 4, PHP 5 
 

三、関数基礎用法と例1、関数基礎用法
 
  
ignore_user_abort();
?>

説明:ignore_を呼び出すuser_abort()関数は、クライアントがスクリプトの実行を終了しなくても宣言します.
2,set_を結合time_limit()関数はループスクリプト実行タスクを実現する
 
  
ignore_user_abort();
set_time_limit(0);
$interval=60*15;
do{
//
}while(true);
?>

説明:15分間隔でループ実行
3,カスタムインプリメンテーションファイル出力とignore_の追跡user_abort()関数の実行結果
 
  
ignore_user_abort ( TRUE );
set_time_limit ( 0 );
$interval = 10;
$stop = 1;
do {
    if( $stop == 10 ) break;
    file_put_contents('liuhui.php',' Current Time: '.time().' Stop: '.$stop);
    $stop++;
    sleep ( $interval );
} while ( true );
?>

開くphpファイル、ファイルの内容は以下の通りです.
 
  
Current Time: 1273735029 Stop: 9

クライアントがスクリプトを終了しても10秒おきに実行し、現在の時間と終了点を印刷することでignore_をテストできるのが原理です.user_abort()関数の具体的な効果.
インスタンスによるignore_の検出user_abort()関数は非常に実用的で、計画タスクを実現し、後続タスクを完了し、持続的なプロセスなどが非常に有効です.詳細についてはPHPマニュアルを参照してください.次号PHP内蔵関数研究シリーズに注目してください.