Здравствуйте, такой вопрос. Есть ссылки, такого вида. http://сайт.ру/maps/cs16/zm_dust2/?dl=zm_dust2.zip При переходе скачиваеться архив zm_dust2.zip Есть скрипт Код (Text): <?PHP if (!empty($_GET['url'])) { function filesize_get($file1) { // проверяем существует ли файл if(!file_exists($file1)) return "Файл отсутствуетxzxz."; //определяем размер файла $filesize = filesize($file1); // Если размер переданного в функцию файла больше 1кб if($filesize > 1024) { $filesize = ($filesize/1024); // если размер файла больше одного килобайта // пересчитываем в мегабайтах if($filesize > 1024) { $filesize = ($filesize/1024); // если размер файла больше одного мегабайта // пересчитываем в гигабайтах if($filesize > 1024) { $filesize = ($filesize/1024); $filesize = round($filesize, 1); return $filesize." ГБ"; } else { $filesize = round($filesize, 1); return $filesize." MБ"; } } else { $filesize = round($filesize, 1); return $filesize." Кб"; } } else { $filesize = round($filesize, 1); return $filesize." байт"; } } $file = basename($_GET['url']); if (file_get_contents($_GET['url'])) { $content = file_get_contents($_GET['url']); $f = fopen( "$file", "w" ); if (fwrite( $f, $content ) === FALSE) { echo "Не могу произвести запись в файл."; exit; } else {$filesize = filesize_get($file); echo " Файл <font color='red'>" .$file ."</font> записан.".$filesize; fclose( $f );} } else echo "Не могу качать файл."; } ?> Но вот почему то он по этой ссылке качать не хочет. Почему, не пойму, качает только с прямых путей. А это вроде как через GET запрос сделали. Как с таких ссылок качать?
Подскажите как посмотреть заголовки, если не сложно. Добавлено спустя 9 минут 11 секунд: Сделал так, но что то не работает( Код (Text): //Инициализируем CURL-сессию $ch = curl_init(); //Устанавливаем для работы нужный файл curl_setopt($ch, CURLOPT_URL, 'http://***********/maps/cs16/zm_dust2/?dl=zm_dust2.zip'); //Открываем "поток" для сохранения файла на Вашем сервере: $fp = fopen($file, "w+"); //Нагло подделываем REFERER: curl_setopt($ch, CURLOPT_REFERER, $reffer); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.2; rv:6.0.2) Gecko/20100101 Firefox/6.0.2'); //Устанавливаем опцию хождения по всем редиректам curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_COOKIESESSION, 1); // грузим куки curl_setopt($ch, CURLOPT_COOKIE, 'cookie.txt'); //Выполняем CURL-процедуру с заданными параметрами: $content = curl_exec($ch); //Закрываем сеанс CURL: curl_close($ch);
заголовки ответа можно глянуть в том же фаербаге на вкладке network например. возможно там стоит защита от скачивания. надо прикинуться браузером.
Код (Text): Request URL:http://my-cs.ru/maps/cs16/zm_dust2/?dl=zm_dust2.zip Request Method:GET Status Code:200 OK Request Headersview source Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Encoding:gzip,deflate,sdch Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4 Connection:keep-alive Cookie:PHPSESSID=egelmm9199hta5tvna4bth9727; _rbu=13788951042600672713; arp_scroll_position=5190; __utma=30576419.1397166111.1377086615.1378914803.1378931400.6; __utmb=30576419.9.10.1378931400; __utmc=30576419; __utmz=30576419.1378895104.3.2.utmcsr=yandex|utmccn=(organic)|utmcmd=organic|utmctr=%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C%20%D0%BA%D0%B0%D1%80%D1%82%D1%83%20de_dust2%20%D0%B4%D0%BB%D1%8F%20cs%201.6; topyugaru=1; hotlog=1 Host:my-cs.ru User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36 Query String Parametersview sourceview URL encoded dl:zm_dust2.zip Response Headersview source Accept-Ranges:bytes Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Connection:keep-alive Content-Disposition:attachment; filename=zm_dust2.zip Content-Length:1631885 Content-Type:application/octet-stream Date:Wed, 11 Sep 2013 21:02:31 GMT Expires:Thu, 19 Nov 1981 08:52:00 GMT Pragma:no-cache Server:nginx X-Powered-By:PHP/5.4.16 Посмотреть то посмотрел. А вот что делать дальше не знаю( Новичок(
ЗАписал в файл сокет, теперь браузер выдает такую ошибку Невозможно загрузить веб-страницу, так как не поступили данные от сервера. Код ошибки: ERR_EMPTY_RESPONSE Уже дописал. Не хочет работать( Добавлено спустя 3 минуты 9 секунд: Он файл то записывает. Но вот только весит он 0. И не открывает его. Вообщем вот что использую. Код (Text): <?php //Инициализируем CURL-сессию $ch = curl_init(); //Устанавливаем для работы нужный файл curl_setopt($ch, CURLOPT_URL, 'http://my-cs.ru/maps/cs16/zm_dust2/?dl=zm_dust2.zip'); $file = 'zm_dust2.zip'; //Открываем "поток" для сохранения файла на Вашем сервере: $fp = fopen($file, "w+"); //Нагло подделываем REFERER: curl_setopt($ch, CURLOPT_REFERER, $reffer); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36'); //Устанавливаем опцию хождения по всем редиректам curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_COOKIESESSION, 1); // грузим куки curl_setopt($ch, CURLOPT_COOKIE, 'cookie.txt'); //Выполняем CURL-процедуру с заданными параметрами: $content = curl_exec($ch); //Закрываем сеанс CURL: curl_close($ch); var_dump($content); ?> В файл cookie.txt Прописал PHPSESSID=egelmm9199hta5tvna4bth9727; _rbu=13788951042600672713; arp_scroll_position=5190; __utma=30576419.1397166111.1377086615.1378914803.1378931400.6; __utmb=30576419.9.10.1378931400; __utmc=30576419; __utmz=30576419.1378895104.3.2.utmcsr=yandex|utmccn=(organic)|utmcmd=organic|utmctr=%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C%20%D0%BA%D0%B0%D1%80%D1%82%D1%83%20de_dust2%20%D0%B4%D0%BB%D1%8F%20cs%201.6; topyugaru=1; hotlog=1 Неужели что то не так делаю опять(