用PHP简单监控网站能否正常访问 - 源码

2018-11-15 建站知识 浏览 手机预览
文章来源:http://www.imtr.cn/html/n214.html

一个简单的PHP。批量监控网站返回码是否为200。可以整合一个邮件发送功能,如果发现返回状态不是200,发送提醒邮件或短信提醒! 

<?php
//脚本用于监控网站的运行状态,及时得到反馈
header('Content-type: text/html; charset=utf-8');

//要监控的网站列表
$urls=array(
    'www.baidu.com',
    'www.dedecmsok.com',
    'www.dedecmsok.com/aa.html',
);

foreach ($urls as $url) {
    $resCode=getCode($url);
    if (strpos($resCode,'200')===false) { 
	echo "<a href='{$url}'>{$url}</a> 不能正常访问,错误码:{$resCode}<br/>";
    }else{
        echo "<a href='{$url}'>{$url}</a> 正常访问<br/>";
    }
}

//返回页面状态码
function getCode($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);//不进行跳转
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
    curl_exec($ch);
    $httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE);//取出返回的状态码
    curl_close($ch);//用完记得关闭
    return $httpCode;
}
?>

执行结果如下:

www.baidu.com 正常访问
www.dedecmsok.com 正常访问
www.dedecmsok.com/aa.html 不能正常访问,错误码:404


常用的Http请求返回码的意思:

200 页面正常访问

301 页面重定向,永久

302 页面临时重定向

404 页面未找到 

常常遇到的也就这几种返回码。我们常说的301跳转的意思就是把某页面永久定向到另一个页面。


原文地址:http://www.imtr.cn/html/n214.html
  • 如果你的问题还没有解决,可以点击页面右侧的“ ”,站长收到问题后会尽快回复解决方案到你的邮箱。
  • 创造始于问题,有了问题才会思考,有了思考,才有解决问题的方法,才有找到独立思路的可能。 —— 陶行知