需求: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); ?>