Я пытаюсь загрузить файл с помощью cURL. Я получил URL-адрес, где находится файл, но URL-адрес перенаправляет его до достижения файла. По какой-то причине я всегда получаю страницу выхода, когда я обращаюсь к URL с помощью cURL, но когда я ввожу URL прямо в свой браузер, файл просто загружается, как и предполагалось. Файл, который должен быть загружен, является файлом RAR, но вместо файла я получаю неправильную страницу входа.
Это текущий код:
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "url"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $result = curl_exec($ch); curl_close($ch); print_r($result);
Как вы можете видеть, я использую следующий код, чтобы разрешить переадресацию:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
Но я всегда получаю неправильную страницу входа с веб-сайта, если я использую вышеуказанный код. Может ли кто-нибудь увидеть, что я делаю неправильно здесь?
Это ответ, который я получаю с сервера:
HTTP/1.1 302 Found Date: Tue, 26 Jan 2016 15:33:18 GMT Server: Apache/2.2.3 (Red Hat) X-Powered-By: PHP/5.3.2 Set-Cookie: PHPSESSID=session_id; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Location: /nl/nl/export/download/t/Mg==/c/MTQ=/ Vary: Accept-Encoding Content-Length: 0 Content-Type: text/html; charset=UTF-8
Попробуйте с этим кодом
$url = "www.abc.com/xyz";//your url will come here $fp = fopen ('test.txt', 'w+'); $ch = curl_init(str_replace(" ","%20",$url)); curl_setopt($ch, CURLOPT_TIMEOUT, 100); curl_setopt($ch, CURLOPT_FILE, $fp); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_exec($ch); curl_close($ch); fclose($fp);