⑴ Windows中使用计划任务自动执行php程序实例
所谓任务计划就是由计算机自动调用用户事先设置好的应用程序,从而达到简化用户操作的目的。利用Windows
2000的任务计划程序(相当与*NIX下的cron程序,这里不再对其详述),我们可以安排任何脚本、程序或文档在最恰当的时候运行,从而满足自己的需要。下面以Windows
2000为例。
具体来说,我们若需利用任务计划程序自动运行则应执行如下步骤:
单击"开始"按钮,然后依次选择"程序"→"附件"→"系统工具"→"任务计划"(或者是"设置"→"控制面板"→"任务计划"),启动Windows
2000的任务计划管理程序。
在"任务计划"窗口中双击"添加任务计划"图标,启动系统的"任务计划向导",然后单击"下一步"按钮,在给出的程序列表中选择需要自动运行的应用程序,然后单击"下一步"按钮。
设置适当的任务计划名称并选择自动执行这个任务的时间频率(如每天、每星期、每月、一次性、每次启动计算机时、每次登录时等),然后单击"下一步"按钮。
此时系统将会要求用户对程序运行的具体时间进行设置,如几号、几点钟、哪几个时间段才能运行等,我们只需根据自己的需要加以设置即可。
接下来系统将会要求用户设置适当的用户名及密码(如图5所示),以便系统今后能自动加以运行。
最后,我们只需单击"完成"按钮即可将相应任务添加到Windows
2000的任务计划程序中,此后它就会自动"记住"这个任务,一旦系统时间及相关条件与用户设置的计划相符,它就会自动调用用户所指定的应用程序,十分方
便(每次启动Windows
2000的时候,任务计划程序都会自动启动,并在后台运行,确保用户的计划能够按时执行)。
现在我们来测试一下刚才所建的任务是否成功,鼠标右键单击"php"程序图标(如图6所示),在弹出的菜单里面选择"运行"。一般情况下程序图标只要这样
激活运行就可以正常启动。如果运行失败可查看用户和密码是否设置正确,还有确定"Task
Scheler"服务是否已启动,本人当初就是为了节省系统资源把它关掉了导致运行失败,害我找了大半天。另外也可从"系统日志"里查看到底是什么原
因造成运行失败的。
好了,讲了这么多任务计划的应用,现在我们切入正题,下面将介绍两个例子:
一、让PHP定时运行
编辑如下代码,并保存为test.php:
复制代码
代码如下:
<?php
$fp
=
@fopen("test.txt",
"a+");
fwrite($fp,
date("Y-m-d
H:i:s")
.
"
让PHP定时运行吧!\n");
fclose($fp);
?>
⑵ 如何让服务器每隔几分钟自动运行php文件 win7
1、计算机(右键)->管理 ,然后就可以打开 “计算机管理”界面。
2、在界面的左侧有一个 系统工具->任务计划程序 ,在此用户可以创建定时执行的计划任务,并且可以为每个任务添加触发器和具体的操作。
5、最后,按向导提示设置完成即可。
⑶ php网站程序如何按照指定时间每日运行
php计划任务(按指定时间来运行某个程序)
前一阵子遇到有一个程序要在某个时间点来运行,但想来想去也不知用那种方法来触发这个程序,第一个想到的时用JS配合PHP来现实,但没有实现成功,后来请教了一个高手说可以在操作系统里配置。在 linux 中,我们经常用到 crond 服务器来完成这项工作。cron 服务器可以根据配置文件约定的时间来执行特定的作务。比如我们可以在配置文件中约定每天早上4点,对 httpd 服务器重新启动,这就是一个计划任务;windows 的计划任务我们大家都很熟悉。下面我要介绍的是网站计划任务(访问触发)。
第一个首先要解决的时谁来触发,我选择的是用前台页面来触发,
代码如下:
代码:<img src="visit.php?job=cron&t=1212880316" alt="" style="width:0px;height:0px;" />
t=1212880316//这个是时间
第二个要解决的时什么时侯运行,(具体的不讲了,把代码贴出)
代码://计划执行时间
if($job=='cron'){
check_method();
//查询数据库的下一个时间是否小于现在的时间
if($maxrecord['deltemptime']<$nowtime['timestamp']){
$crondb = array();
//day为0为每日 week周 minute时间断 hour什么时侯开始
$rt['cron'] = array('day'=>'0','week'=>$config['cron_week'],'m'=>$config['cron_minute'],'hour'=>$config['cron_hour']);
$crondb[] = $rt;
}
foreach ($crondb AS $key => $cron_val){
//设置了允许分钟段
if (!empty($config['cron_minute'])){
$m = explode(' ', $config['cron_minute']);
$m_now = intval(local_date('i',$nowtime['timestamp']));
if (!in_array($m_now, $m)) {//不包含此分钟的跳出
continue;
}
}
/*执行任务*/
/*********此处是你写的任务***********************/
$next_time = get_next_time($cron_val['cron']);
$DB->query("UPDATE `maxrec` SET `deltemptime`={$next_time}");
}
exit;
}
⑷ linux系统怎么添加计划任务执行php文件
1.打开linux系统命令行界面。
输入完成后,按下“ESC”键并在当前命令行输入“:”,在“:”后输入“wq”,再回车,出现如下提示,证明计划任务添加成功。
Linux计划任务的执行频率:
命令开始部分的频率,由五个部分组成,分别代表分钟、小时、日、月、星期(0是星期日)。当前频率全部执行时,用“*”表示,所以才会出现这么多“*”。下面的例子,可以帮助大家理解:
下面的计划任务会一直运行
* * * * * [command]
下面的计划任务会在每个小时的0分时运行(就是每小时执行一次)
0 * * * * [command]
下面依旧是一个每小时运行一次的计划任务。不过是在每个小时的一刻钟时运行的(1:15,2:15.。。)
15 * * * * [command]
下面的计划任务每天执行一次,在2:30分
30 2 * * * [command]
下面的计划任务是在每个月2号的午夜执行(比如:2010年2月2日00:00)
0 0 2 * * [command]
下面的计划任务会在每周一的每个小时0分钟时执行一次
0 * * * 1 [command]
下面的会每小时运行3次,在0分,10分,和20分时
0,10,20 * * * * [command]
下面是用除号“/”表示每多少运行一次。本例是每5分钟运行一次
*/5 * * * * [command]
还可以用“-”表示一个范围,如下表示5到10点的每个整点运行一次
0 5-10 * * * [command]
另外还有一个特殊的时间关键字“@reboot”,就是每次重启服务器时运行计划任务
@reboot [command]
⑸ php discuz的定时任务是什么原理怎么实现的求高手解答
php中定时计划任务的实现原理:
当 PHP 脚本正常地运行 NORMAL 状态时,连接为有效。当远程客户端中断连接时,ABORTED 状态的标记将会被打开。远程客户端连接的中断通常是由用户点击 STOP 按钮导致的。当连接时间超过 PHP 的时限时,TIMEOUT 状态的标记将被打开。
示例代码:
<?php
ignore_user_abort(true);set_time_limit(0);
date_default_timezone_set('PRC'); // 切换到中国的时间
$run_time = strtotime('+1 day'); // 定时任务第一次执行的时间是明天的这个时候
$interval = 3600*12; // 每12个小时执行一次
if(!file_exists(dirname(__FILE__).'/cron-run')) exit(); // 在目录下存放一个cron-run文件,如果这个文件不存在,说明已经在执行过程中了,该任务就不能再激活,执行第二次,否则这个文件被多次访问的话,服务器就要崩溃掉了
do {
if(!file_exists(dirname(__FILE__).'/cron-switch')) break; // 如果不存在cron-switch这个文件,就停止执行,这是一个开关的作用
$gmt_time = microtime(true); // 当前的运行时间,精确到0.0001秒
$loop = isset($loop) && $loop ? $loop : $run_time - $gmt_time; // 这里处理是为了确定还要等多久才开始第一次执行任务,$loop就是要等多久才执行的时间间隔
$loop = $loop > 0 ? $loop : 0;
if(!$loop) break; // 如果循环的间隔为零,则停止
sleep($loop);
// ...
// 执行某些代码
// ...
@unlink(dirname(__FILE__).'/cron-run'); // 这里就是通过删除cron-run来告诉程序,这个定时任务已经在执行过程中,不能再执行一个新的同样的任务
$loop = $interval;
} while(true);
⑹ 计划任务的执行程序可以用php写吗
php是服务端脚本 前提是需要服务器来支持的,如果你写计划程序是调用在服务器发布过的网站中的php文件的话 应该是没问题的 否则是不可能的