ホームページ  >  に質問  >  本文

WinサーバーでPHPコードを自動的に実行するにはどうすればよいですか?

ブラウザが切断された後も 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 サイトはありますか?

朱836日前1583

全員に返信(4)返信します

  • 大瓶可乐@php.cn

    大瓶可乐@php.cn2022-06-07 17:21:46

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

    返事
    0
  • 朱

    私も試してみました。テストでは、コードが 2 回ジャンプして自動的に停止したことがわかりました。プログラムを 1 回実行し、その番号を txt ファイルに書き込みました。この方法では、テスト ファイルには 2 つの番号しかありません。つまり、2 回ジャンプして停止しただけです。 。 わかった

    · 2022-06-07 20:06:23
  • 大瓶可乐@php.cn

    大瓶可乐@php.cn2022-06-07 17:15:10

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

    返事
    0
  • 大瓶可乐@php.cn

    大瓶可乐@php.cn2022-06-07 17:14:46

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

    返事
    0
  • キャンセル返事