首页 > php代码 > PHP定时执行程序脚本的例子总结

PHP定时执行程序脚本的例子总结

PHP定时执行程序脚本我写过不少文章不过都被那些大站采集过去了,结果百度算法有问题大站有排名我的没有,下面我今天再来给各位整理一些不错的定时执行程序的php代码

今天分享一个超简单直接的PHP定时执行的小代码,关掉浏览器,PHP脚本也能后继续执行!

用web浏览器定时刷新今天想到用sleep函数来实现php 自动定时执行。只要php能运行即可。

由于代码少,这里给个例子直接解释:

<?php
ignore_user_abort(); //关掉浏览器,PHP脚本也可以继续执行
set_time_limit(20); //程序超时时间,单位秒;通过set_time_limit(0)可以让程序无限制的执行下去;当用了set_time_limit()函数设置运行时间,sleep()函数在执行程序时的持续时间将会被忽略掉
$interval = 5; //每隔多少秒运行,单位:秒
do {
    //这里是你要执行的代码
    $i = 1;
    $num_file = "number.txt";
    $fp = fopen($num_file, "r");
    $buf = fread($fp, filesize($num_file));
    fclose($fp);
    $number = file_get_contents($num_file);
    $number = $number + $i;
    $fp = fopen($num_file, "w");
    fwrite($fp, $number);
    fclose($fp);
    echo $number;
    //等待执行的时间
    sleep($interval);
} while (true);
?>

上面方法如果关了浏览器好像就不行了,我们可以尝试使用平台的计划任务来处理

1、windows 的计划任务

2、linux的脚本程序

代码如下:

PHP

<?php
if ($_GET['ac'] == 'stop') exit();
sleep(5);
$name = time();
$fp = fopen("$name.txt", 'w');
fwrite($fp, time());
fclose($fp);
$fp = fsockopen('localhost', 80, $errno, $errmsg);
fputs($fp, "GET /test/time.php\r\n\r\n");
fclose($fp);
?>

在浏览器里执行一下http://localhost/test/time.php

则会在test 文件夹下每隔5秒自动创建一个以当前时间戳命名的txt文件,并写入当前时间戳

可以发现即使关闭了浏览器。这个脚本还是会每5秒执行一次。

这样就达到了定时执行的目的。

如果是要按时间点执行,比如每天 1点钟的时候执行。

那么也只需要小小修改一下也能够实现。

当然这只是一种解决思路,至于实际应用,还要再探索一番

还有一种实现方法:利用死循环,原理差不多

PHP

<?php
ignore_user_abort(true);
set_time_limit(0);
while (1) {
    $fp = fopen('time_task.txt', "a+");
    $str = date("Y-m-d h:i:s") . "n";
    fwrite($fp, $str);
    fclose($fp);
    sleep(1800); //半小时执行一次
    if (!file_exists('1.txt')) exit(); //在目录下建立一个文件1.txt,如果文件存在一直执行,如果文件不存在则退出
    
}
?>

补充这样也可以

<?php
ignore_user_abort(); //关闭浏览器后,继续执行php代码
set_time_limit(0); //程序执行时间无限制
$sleep_time = 5; //多长时间执行一次
$switch = include 'switch.php';
while ($switch) {
    $switch = include 'switch.php';
    $fp = fopen('test.txt', 'a+');
    fwrite($fp, "这是一个php博客:phprm.com $switch \n");
    fclose($fp);
    sleep($sleep_time);
}
exit();
?>


永久链接:http://www.phprm.com/code/64047.html

转载随意!带上文章地址吧。

标签:include fopen

相关文章

发表留言