Mã này luôn thất bại (ví dụ, $result
là Boolean false
):thời gian chờ curl dưới 1000ms luôn thất bại?
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $path);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$curl_version = curl_version();
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 999);
$result = curl_exec($ch);
curl_close($ch);
Mã này luôn thành công (ví dụ, $result
là một chuỗi chứa tiêu đề):
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $path);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$curl_version = curl_version();
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 1000);
$result = curl_exec($ch);
curl_close($ch);
Sự khác biệt duy nhất là Tôi đã thay đổi thời gian chờ từ 999ms thành 1000ms.
Điều này phải là một lỗi trong curl hoặc một số loại tối thiểu trong tài liệu về thời gian chờ kết nối mà tôi đã bỏ lỡ. Đó là nó? Tiền của tôi là sau này.
Chà, sao tôi lại nhớ điều đó ?! – Trott
Ok, tôi thấy điều này trong tài liệu nhưng tôi thực sự không hiểu ý nghĩa của nó và cách tôi có thể làm việc này với giá trị nhỏ hơn 1000. Bất kỳ trợ giúp nào bạn có thể cho tôi sẽ được đánh giá cao, cảm ơn! –
Bạn phải biên dịch libcurl cho chính mình, bằng cách sử dụng '--enable-threaded-resolver' và sau đó biên dịch phần mở rộng curl cho php dựa vào nó. –