ignore_user_abort(); set_time_limit(0) ); // 実行時間は無制限です. PHP のデフォルトの実行時間は 30 秒です。 set_time_limit(0) を使用すると、プログラムは無制限に実行できます。 $ key_file="key.txt"; // 設定ファイル if (isset($_GET['s'])) { if ($_GET['s']=="0"){ // 作業を停止しますが、終了しないでください $s ="false"; echo "機能がオフです" } elseif ($_GET['s']=="1"){ $s="false"; echo "機能がオンです" } elseif ($_GET['s']=="2"){ // 終了 $s="die"; echo "関数が終了しました" } else die ("エラー 0: 動作停止 1: 動作 2 :exit"); $string = ""; write_inc($key_file,$string, true); exit(); } if(file_exists($key_file)){ do{ $mkey = include $key_file; if ($mkey=="true"){ // うまくいく場合 // ///////// ////////// 作業エリア ////////////////////////////// ////// s $ ショータイム = 日付 ("Y-M-D H: I: S") $ fp = FOPEN ('Func.txt', 'A'); //////////////// /////////// } elseif ($mkey=="die"){ // 終了する場合 die("私は死にます!") } sleep($interval); / $interval 分間待ちます }while(true); } else die($key_file." が存在しません !") function write_inc ($path,$strings,$type=false); $path=dirname(__FILE__)."/".$path; if ($type==false) file_put_contents($path,$strings,FILE_APPEND) else file_put_contents($path,$strings); ?>
個人的には、PHP でタスクを定期的に実行するのはまだ少し複雑で使いにくいと感じています。次に、オペレーティング システムでスケジュールされたタスクを実装する方法を紹介します。
Windows で PHP スケジュールされたタスクを実行するいくつかの方法をインターネットで検索しました。そのうちの 1 つは非常に包括的なものでしたが、残念ながら私の場合はうまくいきませんでした。結局、ここでうまく運営するには、さまざまな宗派の方法を組み合わせる必要がありました。
1. test.php という名前の PHP プログラムを作成します。内容は次のとおりです:
コードは次のとおりです | コードをコピーします |
$fp = fopen(" test.txt" , "a+"); fwrite($fp, date("Y-m-d H:i:s") . " 成功しました! n");fclose($fp); ?> |
プログラムを大胆に記述します。任意の includerequire を使用します。問題ありません。 2. test.bat という名前の新しい Bat ファイルを作成します。内容は次のとおりです。 コードは次のとおりです コードをコピーします | |
D: phpphp.exe -q D:websitetest.php
|
//対応するディレクトリを自分で変更します
3. WINDOWS のスケジュールされたタスクを作成します。タスク スケジュール –>タスク スケジュールの追加 フォルダーを参照し、上記のバット ファイルを選択します 時間とパスワードを設定します (WINDOWS にログインします)
保存します。 4. 以上です! スケジュールされたタスクを右クリックし、[実行] をクリックして試してください
Linux システム では、Linux Crontab ツールを使用して、PHP 実行タスクを安定して確実にトリガーできます。 Crontabの2つの方法を以下に紹介します。 1. PHP を使用して Crontab でスクリプトを実行する Crontab で通常のシェル スクリプトを呼び出すのと同じように (Crontab の特定の使用法)、PHP プログラムを使用して PHP スクリプトを呼び出します。 次のように myscript.php を 1 時間ごとに実行します: 1.
コードは次のとおりです コードをコピーします | | # crontab -e 2.00 * * * * /usr/local/bin/php /home/john /myscript.php/usr/local/bin/php
は、PHP プログラムのパスです。 |
2. URL を使用して Crontab でスクリプトを実行する PHP スクリプトを URL によってトリガーできる場合は、lynx、curl、または wget を使用して Crontab を構成できます。 以下の例は、Lynx テキスト ブラウザを使用して URL にアクセスし、PHP スクリプトを 1 時間ごとに実行します。 Lynx テキスト ブラウザは、デフォルトで会話モードを使用して URL を開きます。ただし、以下に示すように、lynx コマンド ラインで -dump オプションを使用して、URL 出力を標準出力に変換します。
コードは次のとおりです コードをコピーします | 1.00 * * * * lynx -dump /myscript.php |
次の例は、CURL を使用して URL にアクセスし、PHP スクリプトを実行します。 5分ごと。 Curl は、デフォルトで出力を標準出力に表示します。 「curl -o」オプションを使用して、スクリプトの出力を一時ファイルにダンプすることもできます。 |
コードは次のとおりです コードをコピーします | 1.*/5 * * * * /usr/bin/curl -o temp.txt /myscript.php |
以下の例は、WGET を使用して URL にアクセスし、10 分ごとに PHP スクリプトを実行します。 -q オプションは、Quiet モードを示します。 「-O temp.txt」は、出力が一時ファイルに送信されることを意味します。
コードは次のとおりです | コードをコピー | 1.*/10 * * * * /usr/bin/wget -q -O temp.txt /myscript.php |
|
http://www.bkjia.com/PHPjc/444599.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/444599.html技術記事この記事では、PHP でスケジュールされたタスクを実装する方法について、一般的に使用される詳細な説明をまとめています。これには、PHP を直接使用して操作する方法や、オペレーティング システムのスケジュールされたタスクを使用して操作する方法も含まれます。
|