WinサーバーでPHPコードを自動的に実行するにはどうすればよいですか?
朱
2022-06-06 23:17:51
0
4
1649

ブラウザが切断された後も php コードが実行し続けられることを願っていますが、多くの方法を試しましたが、うまくいきません

1. シンプルで直接的かつ無謀なタイプ

1

2

3

4

5

6

7

8

9

10

<?php

ignore_user_abort();// を閉じますブラウザ、PHP スクリプトも使用可能 実行を継続

set_time_limit(0); // set_time_limit(0) により、プログラムを制限なく実行できます

ini_set('memory_limit',' 512M'); // メモリ制限を設定します

$interval=60*30;//30 分ごとに実行します

do{

//ToDo

sleep($interval); // 5 分間待ちます

}

while(true);

欠点:起動後は PHP ホストを終了しない限り制御できません。ハッカーでない限りこの方法は使用しないでください。

2. シンプルで制御可能

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

config.php

<?php

return 1;

?>

cron.php

ignore_user_abort();//ブラウザを閉じると、PHP スクリプトの実行を続行できます。

set_time_limit(0);//プログラムはset_time_limit(0)

$interval=60*30;//30 分ごとに実行

do{

$run = include 'config.php ';

if (!$run) die('プロセス中止');

//ToDo

sleep($interval);/ /Wait for 5 minutes

}

while(true);

設定の return 0 を変更してプログラムを停止します.php. 実現可能な方法は次のとおりです config.php ファイルは特別なフォームと対話し、HTML ページでいくつかの変数を設定することによって構成します

欠点: システム リソースを消費し、実行時間が長いため、思わぬ隠れた危険を引き起こす可能性があります。たとえば、メモリ管理の問題です。

##3. 単純な改良型

##1

#2

3

4

5

6

7

8

9

< ;?php

$time=15;

$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

/*

function

*/

sleep($time);

file_get_contents($url);

? >

php スクリプト スリープは、一定期間経過後に自身にアクセスすることで実行を継続します。ちょうど駅伝のように。これにより、各 PHP スクリプトが確実に実行されます。

phpファイルの各ループが独立して実行されるため、time_outの制限を回避できる方法ですが、上記と同じにするのがベストです。プロセスを終了できるように制御コード cofig.php を追加します。

上記の方法はテスト後は役に立ちません。コードは数分間実行しても自動的に停止します。個人的には 24 時間実行できることを望んでいます。他の方法はありますか?それとも、コードを時々実行できるように、Web ページを自動的に開くサービスを提供できる Web サイトはありますか?

朱

全員に返信(3)
大瓶可乐

爬虫類になりたいですか?ページングジャンプを作成し、実行後に次のページにジャンプすることができます。

いいねを押す +0
  • 返事 私も試してみました。テストでは、コードが 2 回ジャンプして自動的に停止したことがわかりました。プログラムを 1 回実行し、その番号を txt ファイルに書き込みました。この方法では、テスト ファイルには 2 つの番号しかありません。つまり、2 回ジャンプして停止しただけです。 。 わかった
    著者 2022-06-07 20:06:23
大瓶可乐

Windows のスケジュールされたタスクを試すことができます

いいねを押す +0
大瓶可乐

php はこれには適していません

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート