PHP定时执行的三种方式实现
admin
2023-06-27 17:03:32
0

1、windows 的计划任务
2、linux的脚本程序
3、让web浏览器定时刷新

具体实现

1、windows计划任务

PHP很少在win服务器上跑,具体实现也不再深究,看网上实现的原理大概是写bat脚本,然后让window任务添加执行这个bat脚本:

 
在网上找了些WINDOWS执行PHP的计划任务的方法,有一个写得很全,可惜在我这竟然没通过。最后不得不综合各门派的方法,才能在我这运行成功。

1、写一个PHP程序,命名为test.php,内容如下所示:

  1. $fp = fopen("test.txt""a+");

  2. fwrite($fpdate("Y-m-d H:i:s") . " 成功成功了!\n");

  3. fclose($fp);

  4. ?>

程序大胆地写,什么include\require尽管用,都没问题
2、新建Bat文件,命名为test.bat,内容如下所示:

  1. D:\php\php.exe -q D:\website\test.php

//相应目录自己改上

3、建立WINDOWS计划任务:
开始–>控制面板–>任务计划–>添加任务计划
浏览文件夹选择上面的bat文件
设置时间和密码(登陆WINDOWS的)
保存即可了。
4、over! 可以右键计划任务点“运行”试试

2、linux 的脚本实现

这里主要使用到crontab这个命令,

使用方式 :

  1. crontab   filecrontab [ -u user ] [ -u user ] { -l | -r | -e }

说明 :

crontab 是用来让使用者在固定时间或固定间隔执行程式之用

使用crontab写shell脚本,然后让PHP调用shell,这个是利用linux的特性,应该还不算PHP自身语言的特性

我们的PHP程序有时候需要定时执行,我们可以使用ignore_user_abort函数或是在页面放置js让用户帮我们实现。但这两种方法都不太可靠,不稳定。我们可以借助Linux的Crontab工具来稳定可靠地触发PHP执行任务。

下面介绍Crontab的两种方法。

一、在Crontab中使用PHP执行脚本

就像在Crontab中调用普通的shell脚本一样(具体Crontab用法),使用PHP程序来调用PHP脚本。
每一小时执行myscript.php如下:

  1. # crontab -e

  2. 00 * * * * /usr/local/bin/php /home/john/myscript.php

/usr/local/bin/php为PHP程序的路径。

二、在Crontab中使用URL执行脚本

如果你的PHP脚本可以通过URL触发,你可以使用lynx或curl或wget来配置你的Crontab。
下面的例子是使用Lynx文本浏览器访问URL来每小时执行PHP脚本。Lynx文本浏览器默认使用对话方式打开URL。但是,像下面的,我们在lynx命令行中使用-dump选项来把URL的输出转换来标准输出。

  1. 00 * * * * lynx -dump http://www.yovae.com/myscript.php

下面的例子是使用CURL访问URL来每5分执行PHP脚本。Curl默认在标准输出显示输出。使用”curl -o”选项,你也可以把脚本的输出转储到临时文件。

  1. */5 * * * * /usr/bin/curl -o temp.txt http://www.centos.bz/myscript.php

下面的例子是使用WGET访问URL来每10分执行PHP脚本。-q选项表示安静模式。”-O temp.txt”表示输出会发送到临时文件。

  1. */10 * * * * /usr/bin/wget -q -O temp.txt http://www.yovae.com/myscript.php

3、使用php让浏览器刷新需要解决几个问题

PHP脚本执行时间限制,默认的是30m 解决办法:set_time_limit();或者修改PHP.ini 设置max_execution_time时间(不推荐)
如果客户端浏览器关闭,程序可能就被迫终止,解决办法:ignore_user_abort即使关闭页面依然正常执行
如果程序一直执行很有可能会消耗大量的资源,解决办法使用sleep使用程序休眠一会,然后在执行

相关内容

热门资讯

模仿黄仁勋走红后,“我现在很害... 5月,英伟达CEO黄仁勋在华访问期间,身着他标志性的皮衣,一头扎入北京的“烟火气”之中。他在街头大口...
原创 北... 5月29日,北方华创宣布,其首台600mm×600mm面板级封装去胶设备(Descum)成功出厂,标...
燃气灶开关丢了怎么修复 燃气灶的开关是长期使用后容易出现丢失或损坏的情况。如果你的燃气灶开关丢了,该如何修复呢?下面提供几种...
成都阳光明珠家具怎么样 最佳回答 成都阳光明珠家具属于国内的二线家具品牌。在产品的质量以及销售量上是没有办法跟全友家私,宜家...
修理洗手盆脱落多少钱 修理洗手盆脱落的费用可能会因多种因素而有所不同,以下是一些可能影响价格的因素:1. 损坏程度:洗手盆...
湖北一地回应“农机手抢收夏粮收... 澎湃新闻记者 钟煜豪5月30日,湖北天门市汪场镇人民政府就网络反映的“广西农机手抢收夏粮收割机爬梯被...
洗衣机黑屏修理多少钱 洗衣机黑屏是一种常见的故障。造成这种问题的原因可能有很多,例如故障的电源线,中断的电源等等。 如果...
兴国上门维修燃气灶价格 现今社会,人们对家居生活的需求越来越高,因此家电维修服务行业也得到了蓬勃发展,尤其是燃气灶维修方面更...
供应商变股东:存储芯片三巨头联... 美光、三星、SK海力士历史上首次联合出现在同一家AI公司的融资名单。 当地时间5月28日,Anthr...
美防长:将扩充美在“印太”核潜... 澎湃新闻记者 南博一据央视新闻报道,当地时间30日,在香格里拉对话会第一次全体会议中,美国国防部长赫...