【问题标题】:PHP script to execute at certain times在特定时间执行的 PHP 脚本
【发布时间】:2010-12-31 03:54:51
【问题描述】:

有没有一种简单的方法可以让 php 脚本在一天中的特定时间执行一些 html?

例如,我的主页上有一个标题,有时我希望能够在标题下方添加一些内容,在本例中为 iframe。

我知道每个人都提到了 cron 工作,但它如何与它一起工作?还有其他选择吗?它并非在所有主机上都可用

【问题讨论】:

  • 对不起,脚本如何“执行一些 html”?
  • @Ben 我认为他的意思是“生成”一些 html。

标签: php time


【解决方案1】:

cron 和 scheudled 作业的想法似乎与您实际尝试做的事情背道而驰。如果您希望仅在特定时间显示某些内容(在本例中为 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 的想法远比在每个请求期间有条件地显示它要复杂得多。

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

【讨论】:

  • 正是我想要的,但我只做前端,所以我仍然有点迷失在脚本中添加额外的时间。
【解决方案2】:

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

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

如果您在托管环境中,则需要检查是否允许其中任何一个。

【讨论】:

  • 如果 (v) 主机上两者都不允许,您可以编写一个命令行 PHP 脚本,该脚本作为守护程序运行并在配置的时间执行脚本。最后的手段。
  • 或者您可以创建一个 Web 服务来触发它,然后从您拥有的盒子中调用它。
【解决方案3】:

cron 在 UNIX 上,launchd 在 OS X 上,Task Scheduler 在 Windows 平台上。

【讨论】:

    【解决方案4】:

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

    【讨论】:

    【解决方案5】:

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

    【讨论】:

      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

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

        【讨论】:

          【解决方案8】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-03-23
            • 1970-01-01
            • 2018-10-27
            • 1970-01-01
            • 1970-01-01
            • 2020-10-24
            • 2018-07-16
            • 1970-01-01
            相关资源
            最近更新 更多