需求:http://www.cnca.gov.cn/ywzl/gjgnhz/jkzl/这个网页会公布进口水产品境外生产企业注册名单,但公布日期不一定,所以想自动检查美国(2014年07月21日)这个条目是否更新了,如果更新了发邮件通知我。方法:获取网页,查看网页是否存在“美国(2014年07月21日)”若不存在则更新了。发邮件用PHPMailer的SMTP发送邮件很方便。
check.php
<?php
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);//通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*60*10;//单位是秒,每10小时执行一次
do{
$run = include 'config.php';
if(!$run) die('process abort');
$url = "http://www.cnca.gov.cn/ywzl/gjgnhz/jkzl/";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,20);
$content = curl_exec($ch);
curl_close($ch);
$hasAutime=strpos($content,'美国(2014年07月21日');
$hasAu=strpos($content,'美国');//防止没有下载到网页误触发,方法不可取
if (!$hasAutime && $hasAu){
require 'mail/mySendMail.php';
$subject="内容有更新";
$body="内容有更新,请访问<a href='http://www.cnca.gov.cn/ywzl/gjgnhz/jkzl/'>http://www.cnca.gov.cn/ywzl/gjgnhz/jkzl/</a>";
if(mySendMail("[email protected]","name",$subject,$body)){
echo "有更新,已发送邮件提醒";
} else {
echo "有更新,邮件发送失败";
}
die('process abort');
} else {
echo "not modified";
}
sleep($interval);
}while(true);
?>