У меня скрипт делает curl запрос. В параметрах я указал вот это:
curl_setopt_array($ch, [
CURLOPT_CONNECTTIMEOUT => 20,
CURLOPT_TIMEOUT => 400,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_HTTPAUTH=>CURLAUTH_ANY]);
$b = curl_getinfo($ch);
if ($b['total_time'] > 399) {
servicetg("Превышено время ожидания <code>total_time</code>. Время ожидания {$b['total_time']} секунд\nПопытка N$i");
} else
if($b['connect_time'] > 19){
servicetg("Превышено время подключения <code>connect_time</code>. Время ожидания {$b['connect_time']} секунд\nПопытка N$i");
} else
if ($http === 200) {
return [$a,$b];
} else {
servicetg("⚠⚠⚠\n<b>Критическая непредвиденная ошибка</b>\nКод состояния: $http\nВремя ожидания {$b['total_time']}\nПопытка N$i");
}
по моей логике должно было быть всё хорошо, однако, если хост недоступен, но мне выкинет исключение, потому что по какой-то причине connect_time будет равен 0 секунд.
[url] => http://....
[content_type] =>
[http_code] => 0
[header_size] => 0
[request_size] => 0
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 20.001279
[namelookup_time] => 0.0017
[connect_time] => 0
[pretransfer_time] => 0
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => -1
[upload_content_length] => -1
[starttransfer_time] => 0
[redirect_time] => 0
[redirect_url] =>
[primary_ip] =>
[certinfo] => Array
(
)
[primary_port] => 0
[local_ip] =>
[local_port] => 0
[http_version] => 0
[protocol] => 0
[ssl_verifyresult] => 0
[scheme] =>
[appconnect_time_us] => 0
[connect_time_us] => 0
[namelookup_time_us] => 1700
[pretransfer_time_us] => 0
[redirect_time_us] => 0
[starttransfer_time_us] => 0
[total_time_us] => 20001279
я, конечно, могу перестроить проверку, где будет
if 200
else if total_time > 399
else if total_time > 19 && http_code === 0
else
но кто-нибудь может объяснить, на кой тогда существует connect_time, если он всегда пустой?