1.主要文件,访问该页面,该页面根据“验证页面”的返回结果设置本文件的返回状态 header("HTTP/1.1 ".$code." ".$_status[$code])
复制代码 代码如下:
<?php
ini_set("max_execution_time", 120);
include("CheckConfig.php");
function send_http_status($code) {
static $_status = array(
// Informational 1xx
=> "Continue",
=> "Switching Protocols",
// Success 2xx
=> "OK",
=> "Created",
=> "Accepted",
=> "Non-Authoritative Information",
=> "No Content",
=> "Reset Content",
=> "Partial Content",
// Redirection 3xx
=> "Multiple Choices",
=> "Moved Permanently",
=> "Moved Temporarily ", // 1.1
=> "See Other",
=> "Not Modified",
=> "Use Proxy",
// 306 is deprecated but reserved
=> "Temporary Redirect",
// Client Error 4xx
=> "Bad Request",
=> "Unauthorized",
=> "Payment Required",
=> "Forbidden",
=> "Not Found",
=> "Method Not Allowed",
=> "Not Acceptable",
=> "Proxy Authentication Required",
=> "Request Timeout",
=> "Conflict",
=> "Gone",
=> "Length Required",
=> "Precondition Failed",
=> "Request Entity Too Large",
=> "Request-URI Too Long",
=> "Unsupported Media Type",
=> "Requested Range Not Satisfiable",
=> "Expectation Failed",
// Server Error 5xx
=> "Internal Server Error",
=> "Not Implemented",
=> "Bad Gateway",
=> "Service Unavailable",
=> "Gateway Timeout",
=> "HTTP Version Not Supported",
=> "Bandwidth Limit Exceeded"
);
if(array_key_exists($code,$_status)) {
header("HTTP/1.1 ".$code." ".$_status[$code]);
}
}
function GetStatusCode($url)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url); //设置URL curl_setopt($curl, CURLOPT_HEADER, 1); //获取Header
curl_setopt($curl,CURLOPT_NOBODY,true); //Body就不要了吧,我们只是需要Head
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //数据存到成字符串吧,别给我直接输出到屏幕了
$data = curl_exec($curl); //开始执行啦~
$HttpCode =curl_getinfo($curl,CURLINFO_HTTP_CODE); //我知道HTTPSTAT码哦~
curl_close($curl); //用完记得关掉他
return $HttpCode;
}
function ResetUrl($url)
{
if(strpos($url,"?")>0)
$url.="&rnd";
else
$url.="?rnd";
$url.=rand();
return $url;
}
function ShowStateInfo($UrlArr,$MailPara)
{
$count=count($UrlArr);
if(isset($_REQUEST["start"]))
{
$start=$_REQUEST["start"]*1;
}
else
{
$start=1;
}
if(isset($_REQUEST["end"]))
{
$end=$_REQUEST["end"]*1;
}
else
{
$end=$start;
}
$start=$start-1;
$end=$end-1;
if($start<0)
{
$start=0;
}
if($start>=0 && $start<$count)
{
if($end>=$count)
{
$end=$count-1;
}
if($end<$start)
{
$end=$start;
}
$sTime=date("Y/m/d H:m:s");
echo "开始时间".$sTime."<br/>";
echo "检测结果<br />";
for($i=$start;$i<=$end;$i++)
{
$url=ResetUrl($UrlArr[$i]);
$state=GetStatusCode($url);
echo " ".$state ." => <a href="http://".$url."" target="_blank">".$url."<a>";
if($state!="200")
{
echo " <span style="color:red;font-weight:bold">本条访问出错!</span><br/>";
send_http_status($state);
//发邮件
require("Mail.php");
$MailPara["Subject"]="网站监控结果";
$MailPara["Body"]="错误信息:状态-><span style="color:red;font-weight:bold">".$state."</span><br/>地址:".$url;
SendResultMail($MailPara);
break;
}
echo "<br/>";
}
$eTime=date("Y/m/d H:m:s");
echo "结束时间".$eTime."<br/>";
}
}
ShowStateInfo($UrlArr,$MailPara);
?>
2.邮件
复制代码 代码如下:
function SendResultMail($MailPara)
{
require("phpmailer/class.phpmailer.php");
$mail = new PHPMailer();
$mail->CharSet = $MailPara["CharSet"];
$mail->IsSMTP();
$mail->Host = $MailPara["Host"];
$mail->Port = $MailPara["Port"];
$mail->SMTPAuth = true;
$mail->Username = $MailPara["FromMail"];
$mail->Password = $MailPara["FromMailPassword"];
$mail->From = $MailPara["FromMail"];
$mail->FromName = $MailPara["FromMailName"];
foreach($MailPara["To"] as $toMail)
{
$mail->AddAddress($toMail["ToMail"], $toMail["ToMailName"]);
}
$mail->Subject = $MailPara["Subject"];
$mail->Body = $MailPara["Body"];
$mail->AltBody = $MailPara["AltBody"];
if(!$mail->Send())
{
echo "邮件发送失败. <p>";
echo "错误原因: " . $mail->ErrorInfo ."<br/>";
exit;
}
echo "邮件发送成功<br/>";
}
3.配置文件
复制代码 代码如下:
<?php
$UrlArr=array(
"localhost/test/281892.shtml",
"localhost/test/all-229-1-221.shtml",
"localhost/testclass/all-254-1-1.shtml",
"localhost/test/cheng/bd/1988478.html",
"localhost/test/asd/2066495.html"
);
//邮箱发送相关信息
$MailPara=array(
"CharSet"=> "GB2312",
"Host"=> "smtp.exmail.qq.com", // 邮箱服务地址
"Port"=>25,
"FromMail"=> "fdsafdsafd@fdasfds.com", // 发件人邮箱地址
"FromMailPassword"=> "*********", // 发件人邮箱密码
"FromMailName"=> "检测", //发件人称呼 "To"=>array(
array(
"ToMail"=>"defdafdsafdsafdf@qq.com", //收件人邮箱地址
"ToMailName"=> "bqq", //收件人称呼
),
array(
"ToMail"=>"abfdsafdsafdsafc@gmail.com", //收件人邮箱地址
"ToMailName"=> "agmail", //收件人称呼
)
),
"Subject"=> "", //邮件标题
"Body"=> "", //邮件内容
"AltBody"=> "附加信息" //附加信息,可以省略
);
?>
邮件主要使用"phpmailer",点击下载