本文地址:http://www.cnblogs.com/vnii/archive/2012/09/25/2701585.html
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 100 => \'Continue\', 101 => \'Switching Protocols\', // Success 2xx 200 => \'OK\', 201 => \'Created\', 202 => \'Accepted\', 203 => \'Non-Authoritative Information\', 204 => \'No Content\', 205 => \'Reset Content\', 206 => \'Partial Content\', // Redirection 3xx 300 => \'Multiple Choices\', 301 => \'Moved Permanently\', 302 => \'Moved Temporarily \', // 1.1 303 => \'See Other\', 304 => \'Not Modified\', 305 => \'Use Proxy\', // 306 is deprecated but reserved 307 => \'Temporary Redirect\', // Client Error 4xx 400 => \'Bad Request\', 401 => \'Unauthorized\', 402 => \'Payment Required\', 403 => \'Forbidden\', 404 => \'Not Found\', 405 => \'Method Not Allowed\', 406 => \'Not Acceptable\', 407 => \'Proxy Authentication Required\', 408 => \'Request Timeout\', 409 => \'Conflict\', 410 => \'Gone\', 411 => \'Length Required\', 412 => \'Precondition Failed\', 413 => \'Request Entity Too Large\', 414 => \'Request-URI Too Long\', 415 => \'Unsupported Media Type\', 416 => \'Requested Range Not Satisfiable\', 417 => \'Expectation Failed\', // Server Error 5xx 500 => \'Internal Server Error\', 501 => \'Not Implemented\', 502 => \'Bad Gateway\', 503 => \'Service Unavailable\', 504 => \'Gateway Timeout\', 505 => \'HTTP Version Not Supported\', 509 => \'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",点击下载