手上管理的网站开始增多。使用监控宝等工具来管理的话,总觉得超级麻烦。先不说注册,后面还需要添加网站什么的。
正巧公司一台略闲的服务器上面运行了不少定时任务。于是写了一个简单的PHP。批量监控网站返回码是否为200。如果发现返回状态不是200,就给我发一个提醒邮件!
常用的Http请求返回码的意思:
200 页面正常访问
301 页面重定向,永久
302 页面临时重定向
404 页面未找到
常常遇到的也就这几种返回码。我们常说的301跳转的意思就是把某页面永久定向到另一个页面。
直接上PHP了。里面有注释,自己看。
<?php /** * 脚本用于监控网站的运行状态,及时得到返回码反馈给指定的邮箱 */ header('Content-type: text/html; charset=utf-8'); //要监控的网站列表 $urlList=array( 'http://www.lingdonge.com', 'http://www.baidu.com', 'http://www.baidu.com/ok.php', ); foreach ($urlList as $url) { $rescode=GetResCode($url); if (strpos($rescode,'200')===false) { echo 'URL【'.$url.'】,发现非正常代码【'.$rescode.'】<br/>'; }else { echo '哎哟,【'.$url.'】正常访问哟!<br/>'; } } /** * 返回页面状态码 * @param [type] $url [description] */ function GetResCode($url) { $ch = curl_init (); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_TIMEOUT, 200); curl_setopt($ch, CURLOPT_HEADER, FALSE); curl_setopt($ch, CURLOPT_NOBODY, true);//Body就不要了吧,我们只是需要Head curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);//不进行跳转,即302不跟着跳 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); curl_exec($ch); $httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE);//取出返回码 curl_close($ch);//用完记得关掉他 return $httpCode; } ?>
前面写过一个PHPMailer发送邮件的教程 网站定时监控
配合到一起。也不过50行的代码。可以监控网站是否遇到404等问题。
运行效果如下:
可以通过web网页进行访问。也可以加到Crontab定时5分钟进行监控一次。
PS:遇到布署到自己的VPS或者服务器才能监控。需要服务器开启php_curl扩展。一般的服务器应该都是开了的。
技术含量不高,以后出个详细的系统,如何利用定时任务做些有趣的事。
成都SEO小五嚎2句: 本文是(成都SEO小五)辛苦弄出来的,转载成都SEO小五原创的请保留链接: PHP代码:监控网站是否能正常访问,3Q
------====== 小五公告 ======------
成都SEO小五,专注成都搜索引擎优化。
小五善长站内外优化,C#、PHP开发,中英文SEO,Google中英文和百度优化技术。欢迎群内交流。伸手党请绕路,求资源的请绕开,求问题解答的请进群内交流。开放了一个QQ交流群:160750032。加入验证时请标注任何SEO相交字眼。友情链接直接Q我,收录正常,内容大部份原创、SEO或者程序开发、网络营销、线上推广等相关行业即可。
你是大叔 👿
2014-12-19 2:45 pm你怎么认识我。谁呢。
2014-12-21 6:34 pm可以交换友链吗?Q1248542068
2015-01-28 12:34 am