PHPignore_user_abort と connection_status と register_shutdown_function の使用方法
ignore_user_abort() を使用して PHP スケジュールされたタスクを実装します
構文: intignore_user_abort(int [setting]);
戻り値: integer
関数の種類: PHP システム関数
内容の説明
0 - NORMAL (正常) 1 - ABORTED (異常終了) 2 - TIMEOUT (タイムアウト)
この関数は、ユーザー接続が中断された後も PHP プログラムが実行を継続するかどうかを設定または取得します。デフォルト値では、切断後に実行を停止します。
PHP 設定ファイル (php3.ini/php.ini) のignore_user_abort オプションが設定場所です。この機能は、PHP バージョン 3.0.7 以降でのみ使用できます。
ignore_user_abort、この関数は Linux で cron のようなスケジュールされたタスクを実装するのに役立ち、ユーザーがブラウザを閉じた後も実行できます。
まず php.ini を変更し、コメント「;ignore_user_abort = On」を削除し、Apache または IIS を再起動します。
計画されたタスクを実現できるように、sleep(300)+無限ループを使用します。出力があると簡単に中断されるため、このプログラムには出力がありません。
短所: プログラムを停止するにはサーバーを再起動する必要があり、大量のメモリを消費します。 !
ignore_user_abort(true);
set_time_limit(0);
while(1){
$fp = fopen(time_task.txt,"a+");
$str = date("Y-m-d h:i: s")."n";
fwrite($fp,$str);
fclose($fp);
sleep(1800); // 30 分ごとに 1 回実行
}
?>
PHP コード
< ? php
ignore_user_abort(true); // 関数を有効にする
set_time_limit(0) // スクリプトを無制限に実行する
$interval=60*2; // 2 分に 1 回実行する実行内容の開始
file_get_contents ("http://www.liujinze.com/"); // 実行する必要のあるプロセス
// 実行する内容は終了です
sleep($interval); // 実行されました設定された間隔に従って
}while(true);
?>
PHP スケジュールされたタスクのサンプルコード
ignore_user_abort();
set_time_limit(0);
$interval_second = 15;
do{
@$fp = fopen("leapsoulcn.txt","a" );
if(!$fp)
{
echo "システム エラー";
exit();
}
else
{
$fileData = "ドメイン"." "."www.leapsoul.cn"."
";
$fileData = $fileData."description"." "."PHP 初心者向けの PHP チュートリアル Web サイトです。 「。」
";
$fileData = $fileData."title"." "."このチュートリアルでは主に、ignore_user_abort 関数を使用して PHP スケジュールされたタスク関数を実装する方法について説明します。 ";
fwrite($ fp、$ filedata);
connection_status
接続ステータスを取得します。
構文: int connection_status(void);
戻り値: 整数
関数タイプ: ネットワークシステム
内容説明
を使用する場合はパラメータを入力する必要はありません
register_shutdown_function
PHP プログラムの実行後に実行される関数を定義します。
構文: int register_shutdown_function(string func);
戻り値: 整数
関数の種類: PHP システム関数
内容説明
この関数は、PHP プログラム (スクリプト) の実行後に実行される関数をシステムに定義します。指定した関数を実行すると戻り値が見えないためデバッグが困難です。
http://www.bkjia.com/PHPjc/478753.html
www.bkjia.com