качать картинки через прокси...

Статус
В этой теме нельзя размещать новые ответы.

SHad-X

Новичок
качать картинки через прокси...

пытаюсь качать файлы, через прокси... то есть открываю прокси, посылаю завпрос на картинку (например)... потом делаю шапку и прописываю эту картинку в контент... вот код:
PHP:
   $open_host = 'proxy.domain.ru';
   $open_port = '3128';  //порт прокси
   $get_url = "http://ya.ru/logo.gif"; // адрес картинки которую качаю
   
   // здесь получаю имя файла
   $namefile=explode("/",$get_url); 
   $n=count($namefile);                    
   $name_file=$namefile[$n-1];
         
   $fh = fsockopen($open_host, $open_port, $errno, $errstr, 100);
   if (!$fh) continue;
   fputs($fh, "GET ".$get_url." HTTP/1.0\r\n"."Host: ya.ru\r\n"."Accept: text/html, */*\r\n"."Accept-Language: en-us\r\n"."User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n"."Connection: close\r\n\r\n");
   $sp = null;
   while (!feof($fh)) $sp.= fgets($fh, 1024);
   fclose($fh);
   
   // тут убираю лишнюю информацию, оставляю только контент картинки и выбираю от туда размер картинки и Майм-тип файла...
   $tds=split("close",$sp);
   $temp=split("Content-Type:",$tds[0]);
   $type=split("Date",$temp[1]);  $t=trim($type[0]);
   $temp2=split("Content-Length:",$tds[0]);
   $size=split("Age",$temp2[1]);  $s=trim($size[0]);
   $tds[0]="";
   $sp=join($tds,"");

   // делаю шапку
   header("Content-type: '".$t."'");
   header("Content-Length: ".$s);
   header("Content-Disposition: attachment; filename=".$name_file);
   header("Content-Transfer-Encoding: binary");
   header("Cache-Control: no-cache, must-revalidate");
   print($sp);   // вывод контента картинки
и почему он мне просто выводит на экран контент картинки? может как-то по-другому надо делать?
 

SHad-X

Новичок
$t - Mime тип файла

-~{}~ 23.05.06 17:51:

можно было конечно сразу написать image/gif - но ведь не обязательно картинку качать! чтобы любой файл можно было скачать!
 

Wicked

Новичок
а без прокси он картинки показывает? что-то способ вычисления контента картинки у меня не вызывает положительных эмоций: как же привычное всем разделение по \r\n\r\n ?
 

SHad-X

Новичок
а без прокси там вообще можно просто файл считать функцией readfile() и не мучиться! но нужно именно через прокси... мне самому не нравится как я контент получил... какой запрос нужно послать в fputs($fh, ????); чтобы получить контент правильный, не подскажите?

-~{}~ 23.05.06 18:26:

Kostya
так как ты предложил тоже не работает! он вроде вообще шапку не делает... хотя мне кажется действительно контент неправильный... но он мне его выводит на экран (все эти иероглифы)
 

Wicked

Новичок
содержимое картинки вычесляется, например, так:
list(,$content) = explode("\r\n\r\n", $sp);
причем, до того, как ты $sp запоганишь всякими джоинами/сплитами.

У меня теперь работает.

-~{}~ 23.05.06 21:31:

PS: твои пляски со сплитами/тримами разобрать невозможно.

-~{}~ 23.05.06 21:33:

PPS: Content-Type: image/gif - кавычки тут мимо.
 

Kostya

Новичок
а попробуй заменить на время скачивание через прокси
на file_get_contents
и убери
header("Cache-Control: no-cache, must-revalidate");

если заработает, значит надо копать в твоем способе получения контента
 

Wicked

Новичок
PPPS: а вообще, с такими познаниями в HTTP наверное лучше перейти на curl.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху