定时执行php执行,可以使用ignore_user_abort函数或在页面放置js让用户帮助实现。
这里介绍下借助linux的crontab工具触发php执行任务的方法。
crontab实现php定时执行的二种方法。
一、在crontab中使用php执行脚本
就像在Crontab中调用普通的shell/ target=_blank class=infotextkey>shell脚本一样(具体Crontab用法),使用PHP程序来调用PHP脚本。
每一小时执行myscript.php如下:
说明:/usr/local/bin/php为php程序的路径。
二、在crontab中使用url执行脚本
如果php脚本可以通过url触发,可以使用lynx或curl或wget来配置crontab计划任务。
例1,使用Lynx文本浏览器访问URL来每小时执行PHP脚本。Lynx文本浏览器默认使用对话方式打开URL。
但是,在lynx命令行中使用-dump选项来把URL的输出转换来标准输出。
例2,使用curl访问url来每5分执行php脚本。
curl默认在标准输出显示输出。使用”curl -o”选项,也可以把脚本的输出转储到临时文件。
例3,使用wget访问url来每10分执行php脚本。
-q选项表示安静模式。”-o temp.txt”表示输出会发送到临时文件。
注意,如果是创建在/etc/crontab文件中,记得添加执行此脚本的用户,比如root。
另外,要是用纯php代码来实现curl抓取网页的话,这里推荐get方式:
<?php
//初始化
$ch = curl_init();
//设置选项,包括URL
curl_setopt($ch, CURLOPT_URL, "http://www.jb200.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
//执行并获取HTML文档内容
$output = curl_exec($ch);
//释放curl句柄
curl_close($ch);