0

URLが利用可能かどうかを確認し、pingを送信する次のコードを取得しました。

<?php
function test ($url){
$starttime = microtime(true);
$valid = @fsockopen($url, 80, $errno, $errstr, 30);
$stoptime = microtime(true);
echo (round(($stoptime-$starttime)*1000)).' ms.';

if (!$valid) {
   echo "Status - Failure";
} else {
   echo "Status - Success";
}
}

test('google.com');
?>

この関数が 1 時間ごとに 10 分 (合計 6 回) 呼び出されるようにするにはどうすればよいですか?

4

4 に答える 4

1

Use a simple for-loop and the sleep command:

for ($i = 0; $i < 6; $i++) { // Run the code 6 times
    test($url);
    sleep(10 * 60); // Sleep 10 Minutes
}
于 2013-03-04T12:00:12.890 に答える
1

依存:一度だけやりたいですか?

次に、ループ内で関数を呼び出し、ループsleep()の各実行後に使用できます。

毎日やりたいですか?または毎週/毎月特定の日ですか?クローンを使用します。

于 2013-03-04T11:55:47.603 に答える
1

Unix サーバーを使用している場合はcron ジョブを、Windows の場合は Windows タスク スケジューラを使用することをお勧めします。

このように、プログラムされたタスクを使用できるようになります。

を使用する場合、次のcronように簡単に実行できます。

*/10 * * * *  php -f your_relative_or_full_path_URL/params > /dev/null 
于 2013-03-04T12:03:19.410 に答える
0

1 か月間、毎日メールを送信します。毎日のバックアップメールで使用しました..

<?php 
  ignore_user_abort(true); //if page is closed its make it live
  for($i=0;$i<=30;$i++)
  {
     $to = "someone@exmple.com";
     $subject = "Test mail $i";
     $message = "Hello! This is a simple email message.";
     $from = "from@example.com";
     $headers = "From:" . $from;
     mail($to,$subject,$message,$headers);
     sleep(24*60);//send mail in every 24 hour. 
}

?>
于 2013-06-30T19:43:14.370 に答える