Как скопировать картинку на localhost из за PROXY

Sandr

Guest
Как скопировать картинку на localhost из за PROXY

Помогите с вопросом
Нужно поучить картинку (jpg, gif) через прокси
структуры типа
PHP:
$fp = fsockopen("194.67.2.155", 3128) or die("Can't");
if ($fp) { echo('Conncted'); }

fputs($fp,"GET $url HTTP/1.0\r\nHost: $proxy_name\r\n\r\n");
while(!feof($fp)) {
$content.= fgets($fp,128);

}
$handle = fopen($filename, 'w');
fwrite($handle, $content);

fclose($fp);
не помогают
jpg битый получается :(
различие в байтах
 

alexhemp

Новичок
Sandr

по идее нужно коннектиться к прокси, а HOST передавать внешний.

т.е. fsockopen на $proxy_name и 3128 а HTTP запрос на внешний ресурс.
 

Tor

Новичок
alexhemp
не неси чушь

Sandr
ты сначала попробуй сразу в браузере показать эту картинку, без сохранения в файл
если все будет ок, см. в сторону 'binary mode'
 

nikit87

Новичок
Sandr
>jpg битый получается различие в байтах
А ты уверен что вообще хоть битый jpeg получается??? какого размера файл полученный и исходный? попробуй записывать не в файл а вывести в браузер с определенными заголовками и поймешь
 

Фанат

oncle terrible
Команда форума
Sandr
194.67.2.155 - это адрес чего?
$proxy_name - в этой переменной лежит что?
 

Sandr

Guest
Автор оригинала: Tor
Sandr
ты сначала попробуй сразу в браузере показать эту картинку, без сохранения в файл
если все будет ок, см. в сторону 'binary mode'
PHP:
GET http://images.amazon.com/images/P/630294905X.01.LZZZZZZZ.jpg HTTP/1.0 Host: 192.168.0.101 
HTTP/1.0 400 Bad Request Server: AkamaiGHost Mime-Version: 1.0 Content-Type: text/html Content-Length: 187 Expires: Wed, 22 Jun 2005 08:28:45 GMT Date: Wed, 22 Jun 2005 08:28:45 GMT Connection: close 
Invalid URL
The requested URL "/images/P/630294905X.01.LZZZZZZZ.jpg", is invalid.
а в чем проблема ?
файл по этой ссылке есть - и отлично открывается!

-~{}~ 22.06.05 12:31:

вот счас вся функция
PHP:
function proxy_img($proxy_url,$imgname){
    $proxy_name = '192.168.0.101';
    $proxy_port = 3128;
    $proxy_cont = '';

    $fp = fsockopen($proxy_name, $proxy_port) or die("Can't");
    if ($fp) { echo('Conncted'); }

    $url="GET $proxy_url HTTP/1.0\r\nHost: $proxy_name\r\n\r\n";
    fputs($fp,$url);
    while(!feof($fp)) {$content.= fgets($fp,128);}
    $handle = fopen($imgname, 'w');
    fwrite($handle, $content);
    fclose($handle);
    fclose($fp);

    echo "<br>$proxy_url<br>$imgname<br>$url<br>$content";
    break;
}
-~{}~ 22.06.05 12:33:

такая-же функция для html - отлично работает
 

Фанат

oncle terrible
Команда форума
Tor
а ты в лужу сел, мой мальчик =)

-~{}~ 22.06.05 12:34:

Sandr
учи протокол HTTP
 

Sandr

Guest
Фанат
а посоветовать ?
чуть чуть кода - если не сложно :)
 

Фанат

oncle terrible
Команда форума
при чём здесь код?
к коду на пхп твоя проблема не имеет ни малейшего отношения.
повторяю - если взялся пользоваться механизмами НТТР вручную - то хотя бы БАЗОВЫЕ ЗНАНИЯ по этому механизму получи!

-~{}~ 22.06.05 12:39:

совет тут может быть один - ЗНАТЬ что ты делаешь.
читай сюда: PHP FAQ: Ничего не работает! Что делать???. Самое важное - знать, что ты хочешь получить.
специально для таких, как ты, написано
 

Фанат

oncle terrible
Команда форума
интересно.
словами типа "не неси чушь" ты кидаешься в топике, а обсуждать предлагаешь в привате. некрасиво. извинись хотя бы, сначала, перед alexhemp, а потом я, так и быть, побеседую с тобой в привате.
"мальчик мой" - это, всего лишь, обращение. не принимай близко к сердцу. а то ты, я смотрю, разволновался прям.
 

Tor

Новичок
что?
alexhemp дал правильный совет?
тогда и тебе нужно "БАЗОВЫЕ ЗНАНИЯ по этому механизму" получить
 

Sandr

Guest
Не надо флуда!
Идите в ПМ
просто посоветуйте чтото конкретное
желательно - Код
 

kruglov

Новичок
Tor
В заголовке Host мы передаем не адрес прокси, а "внешний" (как выразился alexhemp) адрес искомого сервера. Т.е. images.amazon.com

p. s. Хотя, скорее всего, здесь можно вообще Host не передавать.
 

kruglov

Новичок
Tor
Ну, надо отметить, что некоторые прокси таки требуют указывать host.
 
Сверху