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";
}