详解PHP实现执行定时任务 PHP在这方面应该说是比较弱,如果只用php去实现可以如下: ?php ignore_user_abort();//关闭浏览器后,继续执行php代码 set_time_limit(0);//程序执行时间无限制 $sleep_time = 1;//多长时间执行一次 do{ $fp = fopen('test.txt','a+'); fwrite($fp,这是一个
PHP在这方面应该说是比较弱,如果只用php去实现可以如下:
<?php
ignore_user_abort();//关闭浏览器后,继续执行php代码
set_time_limit(0);//程序执行时间无限制
$sleep_time = 1;//多长时间执行一次
do{
$fp = fopen('test.txt','a+');
fwrite($fp,"这是一个php博客:phpddt.com \n");
fclose($fp);
sleep($sleep_time);
}while(true);
?>
但是当我执行脚本的时候,即使我关闭了浏览器,我根本就没法去停止这段程序了,所以你需要一个执行脚本的开关,你可以用外部文件引入的方法来实现,在while循环的时候,include开关变量即可。那么就可以这样实现:
建立外部引入变量文件 switch.php 内容如下:
<?php
return 1;//1执行脚本 0退出执行脚本
?>
改良脚本如下:
<?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博客:phpddt.com $switch \n");
fclose($fp);
sleep($sleep_time);
}
exit();
?>
这个脚本只是测试可行,具体效率应该不高,对于lamp,你完全可以使用crontab 来实现。
再补充一段小代码:
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*30;// 每隔半小时运行
do{
//这里是你要执行的代码
sleep($interval);// 等待5分钟
}while(true);
关于PHP定时执行任务的实现就为大家介绍这么多,之后还有相关文章为大家分享,不要错过。
沃梦达教程
本文标题为:详解PHP实现执行定时任务


基础教程推荐
猜你喜欢
- Laravel修改验证提示信息为中文的示例 2023-03-08
- PHP基于反射机制实现自动依赖注入的方法详解 2022-10-02
- PHP laravel使用自定义邮件类实现发送邮件 2023-07-03
- php生成短网址/短链接原理和用法实例分析 2023-04-20
- php去除deprecated的实例方法 2022-09-02
- php如何获取当前日期和星期 2024-12-06
- PHP采用get获取url汉字出现乱码的解决方法 2024-03-28
- PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br 2024-03-28
- php+mysql开发的最简单在线题库(在线做题系统)完整案例 2023-01-04
- Laravel 解决composer相关操作提示php相关异常的问题 2023-03-08