PHP脚本在特定时间执行

时间:2009-12-30 16:25:14

标签: php time

是否有一种简单的方法让php脚本在一天中的某些时间执行某些HTML?

例如我在我的主页上有一个标题,在某些时候我希望能够在标题下添加一些东西,在这种情况下是一个iframe。

我知道每个人都提到了cron的工作,但这会如何解决?还有另一种选择吗?它不适用于所有主机

8 个答案:

答案 0 :(得分:13)

cron和scheudled jobs的想法似乎与你实际上要做的事情背道而驰。如果您希望在特定时间内显示某些内容(在这种情况下为iframe),您只需在每个请求期间检查服务器时间,如果您在给定时间段内,则选择显示它。

这样的事情将产生与cron作业相同的效果,具有更多的粒度,在完成请求的确切时刻检查时间。

<!-- Your Header here -->

<?php
$hour = date('G'); // 0 .. 23

// Show our iframe between 9am and 5pm
if ($hour >= 9 && $hour <= 17) { ?>
  <iframe .... ></iframe>
<?php } ?>

您可以展开条件语句,每天多次显示iframe,或让您的脚本检查您希望用来管理iframe显示的任何外部条件。

<强>更新 可以通过类似

之类的方式指定其他时间或类型的比较
<?php 
$hour = date('G');
$day  = date('N'); // 1..7 for Monday to Sunday

if (($hour >= 5  && $hour <= 7)  // 5am - 7am
||  ($hour >= 10 && $hour <= 12) // 10am - 12 noon
||  ($hour >= 15 && $hour <= 19) // 3pm - 7pm
||  ($day == 5)                  // Friday
) { ?>
  <iframe...></iframe>
<?php } ?>

使用服务器端cron /任务调度程序作业定期从标题下方添加/删除iframe的想法远比在每个请求期间有条件地显示它更复杂。

即使您有一些必须运行的特定任务,例如定期生成的报告,显示结果的实际工作通常也不会落在周期性任务上。 PHP脚本负责显示iframe在请求显示任何新内容时仍会查询数据库,并在找到时显示它,而不是以某种方式修改脚本以包含iframe的周期性任务。

答案 1 :(得分:6)

如果您在Linux上运行,那么您可以拥有一个cron作业。

如果您使用的是Windows,请使用任务计划程序。

如果您在托管环境中,则需要检查是否允许使用。

答案 2 :(得分:6)

UNIX上为

cron,OS X上为launchd,Windows平台上为Task Scheduler

答案 3 :(得分:4)

如果您无法访问服务器上的cron作业或计划任务,则可以使用http://pingability.com/等在线服务按指定的时间间隔点击脚本。它并不完美,但您可以构建某种秘密密钥和代码,以确保脚本在特定时间段内不会多次运行。可能看起来有点hacky,但我已经在现场系统上使用它来发送每日电子邮件,并且它已经运行了一年多了。

答案 4 :(得分:2)

在Unix系统上cron是你最好的选择。

答案 5 :(得分:2)

使用cron作业或类似的东西,请参阅f.i. cron jobs or PHP scheduler

答案 6 :(得分:0)

您可以将任务安排为cron作业。

答案 7 :(得分:0)

您可以在crontab中添加PHP脚本,以便按照定义的时间间隔自动运行脚本。从命令行输入crontab -e以将条目添加到您的crontab。