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');
?>

我是如何做到的,所以这个函数会被调用,让我们说 10 分钟 1 小时(总共 6 次)?

4

4 回答 4

1

取决于:你想只做一次吗?

然后您可以在循环内调用该函数并sleep()在每次执行循环后使用。

你想每天都做吗?还是每周/每月某一天?使用 cron。

于 2013-03-04T11:55:47.603 回答
1

使用简单的 for 循环和sleep命令:

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

如果您使用的是 Unix 服务器或 Windows 任务计划程序,我建议您使用cron 作业。

像这样,您将能够使用编程任务。

在使用的情况下,cron您可以像这样轻松地做到这一点:

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

每月每天发送电子邮件。我在日常备份邮件中使用它..

<?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 回答