实际任务中时常会有定时执行某个程序以达到某种目的,减少人工的操作。PHP本身是没有定时器的,用浏览器一直开一个网页借助JavaScript或meta refresh的方式定时执行计划是一个下策,那么既然有了php.exe可以用命令行的方式执行脚本,加上windows自带的任务计划,便可以实现这种需求。
编写需要定时执行的PHP脚本文件
这是一个测试的,路径为D:\wamp5\www\work-php\exec_at\index.php,代码如下:
<?php
$fp = fopen(dirname(__FILE__) . '/' . date('YmdHis'). '.txt', 'w+');
fwrite($fp, '现在的时间是' . date('Y-m-d H:i:s'));
fclose($fp);
?>
测试代码是根据当前年月日时分秒生成一个文本文件,里面内容也是写了当前时间,这样可以明白有没有执行脚本,当然路径最好要写全路径,若用相对路径的话,$fp = fopen(date('YmdHis'). '.txt', 'w+'),生成的文件可能和网页执行的会不一样,不一定会在exec_at目录下,除非CMD运行命令的目录在exec_at目录下,这是一个非常值得注意的问题。
编写CMD命令,存入批处理文件
CMD命令为:D:\wamp5\php\php D:\wamp5\www\work-php\exec_at\index.php,这里把该命令存为exec_at.bat文件,双击该批处理文件,查看exec_at目录下,若生成对应的文件,则执行成功。
加入windows任务计划
开始->控制面板->任务计划(分类视图下在性能与维护里)->添加任务计划,在弹出的对话框里浏览写好的exec_at.bat文件,设定好执行的时间,要注意给当前windows用户设定登录密码,不然任务计划无法执行。