@Gorthaur

Как уменьшить время выполнения скрипта php при запросе ответа от сервера?

Добрый день. Есть код, который забирает код ответа сервера. При выполнении его по рабочей ссылке выдает нужный ответ, при выполнении по нерабочей вместо ответа отваливается по таймауту.
как мне его заставить выдавать ответ, если страница ничего не отдает в течении 20 секунд например?
set_timeout и max_execution_time не фунциклирует.
<?php
$url='http://example.com';
        $code=get_headers($url);
if ($code[0]="HTTP/1.1 200 OK")
 {
echo "200";
} else {
echo "shit";
}
?>

Необходимо для мониторинга страниц по доступности http, т.к. пинг не всегда дает корректную информацию (на некоторых машинах закрыт ICMP, некоторые пингуются но веб-сервер лежит)

UPD
Получилось! Рабочий код для информации:
<?php
$url = "http://example.com";
$ch = curl_init( $url );
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => true,
CURLOPT_CONNECTTIMEOUT => 20,
CURLOPT_TIMEOUT => 20,
CURLOPT_NOBODY => 1
);
curl_setopt_array( $ch, $options );
curl_exec($ch);
$http = curl_getinfo($ch);
echo $http['http_code'];
curl_close($ch);

?>
  • Вопрос задан
  • 824 просмотра
Решения вопроса 1
Не работаю с PHP, однако по-моему тебе нужно воспользоваться cURL и CURLOPT_CONNECTTIMEOUT.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@orzubek
16лет, php, js, html/css. Самоучка.
Типичный вопрос: "Как мне уменьшить время суток на 3часа?", никак, можно, если только укоротить скрипт со стороны сервера, укоротить дело не из легких.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы