• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP计划任务

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

我们知道Linux下PHP可以很方便的实现计划任务,而Windows平台上PHP计划任务的实现比较复杂,PHP计划任务的实现在PHP WEB开发中是非常有用的,比如可以实现定时Mysql数据库备份、更新缓存、数据采集、定时生成静态页面等任务。而PHP ignore_user_abort函数可以实现当客户端中断(比如关闭游览器)后仍然继续执行任务的功能。下面来看一段通过PHP  ignore_user_abort函数实现PHP计划任务的实例代码。

  PHP计划任务实例代码
 

PHP Code复制内容到剪贴板
  • <?php   
  • ignore_user_abort();   
  • set_time_limit(0);   
  • $interval_second = 15;   
  • do{   
  • @$fp = fopen("itokit.txt","a");   
  •   
  • if(!$fp){   
  • echo "system error";   
  • exit();   
  • }else {   
  • $fileData = "domain"."\t"."www.itokit.com"."\n";   
  • $fileData = $fileData."description"."\t"."PHP网站开发教程网,面向PHP初学者的PHP教程网。"."\n";   
  • $fileData = $fileData."title"."\t"."本教程主要讲述使用ignore_user_abort函数实现PHP计划任务功能。";   
  • fwrite($fp,$fileData);   
  • fclose($fp);   
  • }   
  •   
  • sleep($interval_second);   
  •   
  • }while(true);   
  • ?>  
  •   PHP计划任务实例说明:在上述代码中主要功能是每隔15秒自动通过PHP文件写入操作在文件中写入一段文字,当用户关闭游览器后仍然继续执行。

      第2行:首先执行php ignore_user_abort函数,告知系统忽略用户放弃行为继续执行,PHP默认情况是当远程客户端连接中断时脚本会退出。通过php ignore_user_abort 函数来控制是否忽略用户中断行为继续执行PHP代码。

      知识点:ignore_user_abort(setting) setting 可选。如果设置为 true,则忽略与用户的断开,如果设置为 false,会导致脚本停止运行。如果未设置该参数,会返回当前的设置。

      第3行:不限制PHP的脚本运行时间。我们知道默认PHP脚本运行都是有时间限制的,一般通过PHP.INI配置文件中的max_execution_time选项设定。通过PHP set_time_limit函数可以更改具体时间,设为0则代表不限制时间。

      第4行:设定具体间隔时间,以秒为单位。

      第5-21行:主要是不间断地以间隔时间为单位执行一次PHP文件写入操作。

      PHP计划任务注意事项说明:在游览器中执行这段PHP代码后,除非中断WEB服务器或者关闭系统,否则后台将一直以设定的间隔时间执行这段代码。

      至此,通过PHP ignore_user_abort函数实现PHP计划任务功能的实例教程就介绍完了,通过了解这个实例的实现原理,你就可以知道很多PHP博客中的定时数据库备份、定时生成静态页面等功能是如何实现的。

     

    使用ignore_user_abort()实现php文件能够在浏览器关掉之后照样运行。

    当然,要想使程序一直执行,还必须加上set_time_limit(0);

     

    Linux 下有种更简单的方法,就是crontab命令
     
    crontab命令的功能是在一定的时间间隔调度一些命令的执行。
     
    crontab 使用方法: crontab [ -e | -l | -r ] 文件名 -e:编辑任务 -l:显示任务信息 -r:删除定时执行任务信息 
     
    crontab的格式:
    *  *   *  *  *  Command
    分 时 日 月 星期 要运行的命令
     
    crontab的例子:
     
    */5 * * * *  lynx http://www.php100.com
    每5分钟访问一次 www.php100.com
     
    0 8 * * *  lynx http://www.php100.com
    每天早上8点访问 www.php100.com
     
    0 10 6 * 1-5 lynx http://www.php100.com
    每个月的6号和每个礼拜的星期一到星期五的早上10点访问 www.php100.com
     
    0 5 7 8 * lynx http://www.php100.com
    8月7日早上5点访问 www.php100.com
     
    上面几个特殊的意思:
    "*"代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。

    鲜花

    握手

    雷人

    路过

    鸡蛋
    该文章已有0人参与评论

    请发表评论

    全部评论

    专题导读
    上一篇:
    PHP引用变量发布时间:2022-07-10
    下一篇:
    PHP转换UTF-8和GB2312的URL编码(转)发布时间:2022-07-10
    热门推荐
    阅读排行榜

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap