PHP

PHP:用 cURL 取得網站狀態碼

前言

之前網站剛架設的時候裝了一些常見外掛,像是Jetpack、WordFence、Yoast之類的,可能是我的虛擬主機太廢了,這些外掛對伺服器loading實在太重了,幾乎每隔半天就斷線,最後刪了這些外掛就恢復正常了= ="

那時候為了要偵測網站是否掛掉,就去研究可以判斷網站是否可用的PHP程式,目前用起來最容易的方式應該是cURL。

不囉嗦,直接上程式碼。

功能實現

裡面都有註解,就不解說了XD

<?php
    $host = "your url"; 
    $find = "200";  # 正常網站狀態碼是200

    function check($host, $find) {  

        // 建一個cURL
        $ch = curl_init();

        // 設置cURL參數
        curl_setopt($ch, CURLOPT_URL, $host);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        // 執行cURL
        curl_exec($ch);

        // $output = curl_exec($ch);
        // if($output === FALSE ){
            // echo "CURL Error:".curl_error($ch); 
        // }

        // 取得資訊
        $info = curl_getinfo($ch);

        // 取得狀態碼
        $http_code = $info["http_code"];

        // 關閉cURL
        curl_close($ch);

        // 判斷網站是否正常
        // 正常回傳true,錯誤回傳false
        if ($http_code == $find){
            return true;
        } else {
            return false;
        }
    }

    // 顯示離線或在線
    if (!check($host, $find)){
        echo "offline";
    } else {
        echo "online";
    }

留下一個回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *