Я хочу проверить, жив ли сайт в этом коде 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, страница, вероятно, недоступна (или фактически ничего не выводит).