Я хочу проверить, жив ли сайт в этом коде cURL?
Я использую этот код, чтобы получить ответ/результат с другого сервера, и я хочу знать, как проверить, жив ли сайт?
$ch = curl_init('http://domain.com/curl.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
if (!$result)
// it will execute some codes if there is no result echoed from curl.php
Ответы
Ответ 1
Все, что вам действительно нужно сделать, это запрос HEAD
, чтобы узнать, получилось ли сообщение 200 OK
после перенаправления. Вам не нужно делать полный запрос тела для этого. На самом деле вам просто не нужно.
function check_alive($url, $timeout = 10) {
$ch = curl_init($url);
// Set request options
curl_setopt_array($ch, array(
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_NOBODY => true,
CURLOPT_TIMEOUT => $timeout,
CURLOPT_USERAGENT => "page-check/1.0"
));
// Execute request
curl_exec($ch);
// Check if an error occurred
if(curl_errno($ch)) {
curl_close($ch);
return false;
}
// Get HTTP response code
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
// Page is alive if 200 OK is received
return $code === 200;
}
Ответ 2
здесь более простой
<?php
$yourUR="http://sitez.com";
$handles = curl_init($yourUR);
curl_setopt($handles, CURLOPT_NOBODY, true);
curl_exec($handles);
$resultat = curl_getinfo($handles, CURLINFO_HTTP_CODE);
echo $resultat;
?>
Ответ 3
Держите его коротким и простым...
$string = @file_get_contents('http://domain.com/curl.php');
Если $string
- null
или empty
, страница, вероятно, недоступна (или фактически ничего не выводит).