我有一个名为reportemail.php文件的php文件,我有一个下拉列表,其中有3个值,如每日,每周,每月
如果客户端设置时间为每天我想运行文件(reportemail),我想每天早上发送电子邮件..我想这样做只在localhost中,而不是在server.and我希望这应该是如果系统也处于关闭模式,则会发生。
我已经尝试过使用cron.bat文件它工作正常,但手动我给了时间..而不是手动给我想要动态提供。
以下是我在cron.bat文件中的做法
E:\xampp\php\php.exe -f E:xampp/htdocs/custom/reportemail.php
在reportemail.php文件中,我有我的电子邮件代码和脚本代码
<script>
setTimeout(function () {
window.location.reload();
}, 5 * 60 * 1000);
document.write(new Date());
</script>
答案 0 :(得分:1)
使用cron
仍然是这里的方法。您只想将调度程序与计划事件分开一点。
不要试图让用户创建/修改cron作业调度本身。相反,安排一个通用的cron作业在最窄的时间帧(每天)执行。那份工作就是:
因此,您的用户只需将记录保存到数据库,指示何时运行其报告,而不是计划cron作业。例如,考虑一个这样的表:
UserReports
----------
ID (PK)
UserID (which user)
ReportID (which report to run)
ScheduleID (which frequency - daily, weekly, etc.)
LastRunDate (date of the last successful run)
每次执行cron作业时,都会从该表中选择符合条件的任何记录:
循环显示符合这些条件的记录,运行报告,使用今天的新LastRunDate
更新记录。