<?php
$host = 'http://google.com';
if($socket =@ fsockopen($host, 80, $errno, $errstr, 30)) {
echo 'online!';
fclose($socket);
} else {
echo 'offline.';
?>
Run Code Online (Sandbox Code Playgroud)
我正在使用上面的程序来获取网站的状态.但我总是得到一个离线消息.代码有什么错误吗?
Sta*_*arx 26
function checkOnline($domain) {
$curlInit = curl_init($domain);
curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10);
curl_setopt($curlInit,CURLOPT_HEADER,true);
curl_setopt($curlInit,CURLOPT_NOBODY,true);
curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);
//get answer
$response = curl_exec($curlInit);
curl_close($curlInit);
if ($response) return true;
return false;
}
if(checkOnline('http://google.com')) { echo "yes"; }
Run Code Online (Sandbox Code Playgroud)
ste*_*ewe 21
主机名不包含http://,这只是URI的方案.
删除它并试试这个:
<?php
$host = 'google.com';
if($socket =@ fsockopen($host, 80, $errno, $errstr, 30)) {
echo 'online!';
fclose($socket);
} else {
echo 'offline.';
}
?>
Run Code Online (Sandbox Code Playgroud)
我知道这是一篇旧文章,但您也可以解析以下内容的输出:
$header_check = get_headers("http://www.google.com");
$response_code = $header_check[0];
Run Code Online (Sandbox Code Playgroud)
这将为您提供完整的 HTTP 状态。