search

Home  >  Q&A  >  body text

如何在php中在一段时间内自动执行这段程序?

我想写个定时器,让用户不触发,我的程序自动执行某段代买,假设一个小时之内自动执行这个函数。

PHP中文网PHP中文网2816 days ago510

reply all(4)I'll reply

  • 迷茫

    迷茫2017-04-10 14:26:01

    如楼上所说,用的是计划任务,但是具体实现有几种方法:

    1. 利用主机系统功能实现:具体来说就是Linux主机利用crontab实现(CPanel面板上是写时钟守护作业,其它的应该都是叫Cron吧),Windows好像是叫计划任务
    2. 定时任务的代码写在一个文件里头然后在首页以图片的形式包含这个文件,并设定这张图片大小为1px0这样当别人访问首页的时候就会执行这段代码。例如:
    cron文件代码如下:
    if (现在的时间是8:00) 输出 “早上好”
    <img src="cron文件" width="0" height="0" />将这段代码加入到首页后只要有人访问首页就会执行一次判断,而且因为是一张大小为0px的无效图片,所以不影响网页的载入速度。

    两种方法的区别就是,一个是系统自动访问代码页面,而另外一种则是用户访问代码页面,系统访问能做到定时执行,而用户访问除非您的访问量特别的大,否则很难做到定时执行,只能做到自动执行。但是第一种方法对主机要求,Linux需要安装有Crontab,而第二种方法对主机没有具体的要求

    reply
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 14:26:01

    加入crontab。windows下是计划任务。

    reply
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 14:26:01

    我最近看到一个php函数,叫ignore_user_abort
    我嚼得这个函数搭配set_time_limit(0), 呵呵.

    ignore_user_abort(true);
    @set_time_limit(0);
    session_write_close();
    while(true){
     //do something
     sleep(3600);
    }

    比楼上各位的方法都更好!
    洗洗准备睡了......

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 14:26:01

    要在服务器上进行设置了,写个脚本,放到服务器上,然后服务器定时执行这个脚本。

    reply
    0
  • Cancelreply