ホームページ >バックエンド開発 >PHPチュートリアル >PHPで検証後のページの戻り状態をシミュレート(例で解説)_PHPチュートリアル

PHPで検証後のページの戻り状態をシミュレート(例で解説)_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:25:50911ブラウズ

1. メインファイルについては、このページにアクセスしてください。このページは、「検証ページ」の戻り結果に基づいて、このファイルの戻りステータスヘッダーを設定します ('HTTP/1.1 '.$code.' '.$_status[ $code])

コードをコピーします コードは次のとおりです:

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."
";
            echo "检测结果
";
            for($i=$start;$i<=$end;$i++)
{
$url=ResetUrl($UrlArr[$i]);
$state=GetStatusCode($url);
echo " ".$state ." => ".$url."";
                if($state!="200")
                {
                    echo " 本条访问出错!
";
                    send_http_status($state);

                    //发邮件
                    require("Mail.php");
                    $MailPara["Subject"]="网站监控结果";
                    $MailPara["Body"]="错误信息:状态->".$state."
地址:".$url;
                    SendResultMail($MailPara);

H:m:s");

with echo "終了時間".$eTime."
";
}
ShowStateInfo($UrlArr,$MailPara);

?>


2.Mail



コードをコピーします
コードは次のとおりです:
function SendResultMail($MailPara ) { require(" phpmailer/class.phpmailer.php"); $mail = new $mail->
$mail->ポート = $MailPara["ポート"];

$mail->SMTPAuth = true;
$mail->Username = $MailPara["FromMail"];
mail->From名前 = $MailPara["FromMailName"]; (Foreach ($ Mailpara ["to"] as $ Tomail) {

$ Mail-& GT; addddress ($ tomail ["tomail"], $ tomail ["tomailname"]);
}
️から M if (! $ Mail-& GT; Send ()) {
echo "メールが失敗しました。 & Lt; p & gt;"
echo "エラーの理由:" & lt; br/& gt; ";

終了;

echo "メールは正常に送信されました
";

}




3. 設定ファイル




コードをコピーします

コードは次のとおりです:


$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" = & GT; "GB2312",
"Host" = & GT; =>25,

「FromMail」=>「fdsafdsafd@dasfds.com」、 「FromMail」=>「FromMailName」=>「検出」、「ToMail」 =>"defdafdsafdsafdf@qq.com", //受信者のメールアドレスafdsafc@gmail.com "、" tomailname "=&gt;" agmail "、 "件名" => ""、"件名" " 情報、省略可能

);

?>


メールには主に「phpmailer」を使用します、
クリックしてダウンロード





http://www.bkjia.com/PHPjc/824912.html

www.bkjia.com


tru​​e

http://www.bkjia.com/PHPjc/824912.html

技術記事

1. メイン ファイル、このページにアクセスすると、このページは「検証ページ」の戻り結果 ('HTTP/1.1 '.$code.' '.$_status[$code]) に基づいてこのファイルの戻りステータス ヘッダーを設定します。次のようにコードをコピーします...