是否有一种简单的方法让PHP脚本在一天中的某些时间执行某些HTML?
例如,我在我的主页上有一个标题,在某些时候我希望能够在标题下添加一些东西,在这种情况下是一个iframe.
我知道每个人都提到了cron的工作,但是如何解决这个问题呢?还有另一种选择吗?它不适用于所有主机
mea*_*gar 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 } ?>
Run Code Online (Sandbox Code Playgroud)
您可以展开条件语句以每天多次显示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 } ?>
Run Code Online (Sandbox Code Playgroud)
使用服务器端cron /任务调度程序作业定期从标题下方添加/删除iframe的想法远比在每个请求期间有条件地显示它更复杂.
即使您有一些必须运行的特定任务,例如定期生成的报告,显示结果的实际工作通常也不会落在周期性任务上.PHP脚本负责显示iframe在请求显示任何新内容时仍会查询数据库,并在找到时显示它,而不是以某种方式修改脚本以包含iframe的周期性任务.
如果您在Linux上运行,那么您可以拥有一个cron作业.
如果您在Windows上,请使用任务计划程序.
如果您在托管环境中,则需要检查是否允许其中一个.
当您无法访问服务器上的 cron 作业或计划任务时,您可以使用http://pingability.com/等在线服务以指定的时间间隔执行脚本。它并不完美,但您可以构建某种密钥和代码,以确保脚本不会在特定时间段内多次运行。可能看起来有点老套,但我已经在实时系统上使用它来发送每日电子邮件,并且它已经工作正常一年多了。