просьбы об Окей, я сделал сценарий проверки, если файл существует, но заголовок я получил от Curl плохоCurl получить заголовок с получить не голову
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_NOBODY, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_FRESH_CONNECT, true);
$data = curl_exec($curl);
var_dump($data);
и это заставляет меня Ответный 200 в то время как @file_headers() получает меня логический ложь, что право файл не может быть загружен (сброс соединения одноранговой)
я хотел бы использовать file_headers, но его muuuch медленнее, чем ротор (проверка около 10к файлов)
любая идея, как исправить скручивание, чтобы заставить его показывать это правильно, если файл существует?
FYI curl_getinfo ($ curl, CURLINFO_HTTP_CODE); показывает 200 слишком
* Я имею в виду, если файл сбрасывается пэром, потому что Керл обнаруживает, если файл существует безотказно (делая запрос Head), а get_headers) использовать (получить запрос по умолчанию, есть способ заставить Curl сделать прибудет запрос?
после добавления curl_setopt ($ curl, CURLOPT_HTTPGET, true); Когда я войти локон я вижу: * Пустой ответ от сервера, при получении «сбросить пэр» файл, но это загружает весь мой файл
хорошо, я думаю, что Ive сделал обходной путь добавления curl_setopt ($ локон, CURLOPT_RANGE «1 -1"); и загрузка 1 байта вместо получения заголовка, а если false, то файл не существует или не перезагружается пользователем
нет, я просто упростил код здесь, я добавил useragent, и сброс равным является правильным ответом для этого файла, я просто хочу поймать такую ошибку cURL, им тестирование один файл только Использование локон я получаю: HTTP/1.1 200 OK Сервер: Nginx Дата: Чт, 6 августа 2015 9:25:05 GMT Content-Type: применение/октет-поток Контент- Длина: 2147483648 Последнее изменение: вс, 10 мая 2015 г. 23:05:19 GMT Подключение: закрыть и я могу ошибиться вместо 200 – klystianek
Как я уже говорил, сброс соединения не влияет на статус http. Во-вторых, http-статус 200 не гарантирует, что файл существует ;-) – schellingerht
так, как правильно его проверить, завивая, если файл существует (даже в случаях, когда соединение сбрасывается одноранговым узлом)? file_headers() ответ мне подходит. Я могу легко поймать эту ошибку, но она медленная, черт возьми, cURLing на 20-30% быстрее для меня. сейчас я понял, что мой главный вопрос должен быть другим :) – klystianek