У меня есть простой PHP скрипт, который использует CURL, чтобы захватить содержимое URL:PHP не Curl принимая тайм-аутов во внимание
$curlOptions = [
CURLOPT_URL => $url,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HEADER => TRUE,
CURLOPT_FOLLOWLOCATION => TRUE,
CURLOPT_MAXREDIRS => 5,
CURLOPT_CONNECTTIMEOUT => 3,
CURLOPT_TIMEOUT => 5,
CURLOPT_NOBODY => TRUE,
CURLOPT_RETURNTRANSFER => TRUE,
];
$curl = curl_init();
curl_setopt_array($curl, $curlOptions);
$curlResult = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
Однако, в некоторых случаях я ясно вижу длительности 20 секунд или более Eventhough Я указал более низкие значения времени ожидания для CURLOPT_CONNECTTIMEOUT
и CURLOPT_TIMEOUT
.
Как я могу сделать тайм-аут cURL с указанными значениями?
UPDATE:
Все загнутого уголка, которые занимают 20 секунд, чтобы завершить вернуть «статус» 0. Его, вероятно, проблема DNS, где он не может разрешить хост. Я бы предположил, что CURLOPT_CONNECTTIMEOUT
позаботится об этом?
ты пытался CURLOPT_TIMEOUT_MS? –
Я попробовал 'CURLOPT_TIMEOUT_MS' установить значение 5000, но, похоже, не имеет никакого значения. – Luke
Попробуйте реставрировать Curl "curl_reset ($ ch);" и чем установить тайм-аут –