php 模拟post_验证页面的返回状态(实例讲解)_php教程-查字典教程网
php 模拟post_验证页面的返回状态(实例讲解)
php 模拟post_验证页面的返回状态(实例讲解)
发布时间:2016-12-29 来源:查字典编辑
摘要:1.主要文件,访问该页面,该页面根据“验证页面”的返回结果设置本文件的返回状态header('HTTP/1.1'.$code.''.$_st...

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>本条访问出错!</span><br/>";

send_http_status($state);

//发邮件

require("Mail.php");

$MailPara["Subject"]="网站监控结果";

$MailPara["Body"]="错误信息:状态-><span>".$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",点击下载

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新php教程学习
    热门php教程学习
    编程开发子分类