PHP代码:监控网站是否能正常访问

时间:14-12-19 栏目:PHP开发 作者:kyle 评论:3 点击: 6,541 次

手上管理的网站开始增多。使用监控宝等工具来管理的话,总觉得超级麻烦。先不说注册,后面还需要添加网站什么的。

 

正巧公司一台略闲的服务器上面运行了不少定时任务。于是写了一个简单的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.'】&lt;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等问题。

 

运行效果如下:

1

 

可以通过web网页进行访问。也可以加到Crontab定时5分钟进行监控一次。

 

PS:遇到布署到自己的VPS或者服务器才能监控。需要服务器开启php_curl扩展。一般的服务器应该都是开了的。

 

技术含量不高,以后出个详细的系统,如何利用定时任务做些有趣的事。

成都SEO小五嚎2句: 本文是(成都SEO小五)辛苦弄出来的,转载成都SEO小五原创的请保留链接: PHP代码:监控网站是否能正常访问,3Q

PHP代码:监控网站是否能正常访问:目前有3 条留言,牛逼吧!

  1. 板凳
    叶叶:

    你是大叔 👿

    2014-12-19 2:45 pm [回复]
    • kyle:

      你怎么认识我。谁呢。

      2014-12-21 6:34 pm [回复]
  2. 沙发
    深圳seo:

    可以交换友链吗?Q1248542068

    2015-01-28 12:34 am [回复]

来给哥评论评论


------====== 小五公告 ======------
成都SEO小五,专注成都搜索引擎优化。
小五善长站内外优化,C#、PHP开发,中英文SEO,Google中英文和百度优化技术。欢迎群内交流。伸手党请绕路,求资源的请绕开,求问题解答的请进群内交流。开放了一个QQ交流群:160750032。加入验证时请标注任何SEO相交字眼。友情链接直接Q我,收录正常,内容大部份原创、SEO或者程序开发、网络营销、线上推广等相关行业即可。

常用工具

赞助广告

来看过哥的人