- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Вообщем парсю картинки с закрытой зоны на сайте с помощью fsockopen(). Все остальные методы тут не подходят.
$fp = fsockopen("tcp://site.ru", 80, $errno, $errstr, 90);
$request = "GET /dir/pic.asp?IDGood=101247 HTTP/1.0\r\n";
$request .= "Host: site.ru\r\n";
$request .= "Accept: image/jpeg, application/xml;q=0.9, */*;q=0.1\r\n";
$request .= "Accept-Charset: windows-1251, utf-8;q=0.6, *;q=0.1\r\n";
$request .= "Accept-Encoding: deflate, gzip, identity, *;q=0\r\n";
$request .= "Accept-Language: ru\r\n";
$request .= "Connection: close\r\n";
$request .= "Keep-Alive: 300\r\n";
$request .= "Expires: Thu, 01 Jan 1970 00:00:01 GMT\r\n";
$request .= "Cache-Control: no-store, no-cache, must-revalidate\r\n";
$request .= "Pragma: no-cache\r\n";
$request .= "Cookie: income=1\r\n";
$request .= "Referer: http://site.ru/\r\n";
$request .= "User-Agent: Mozilla/5.0 (compatible; MSIE 6.0; Windows 98)\r\n";
$request .= "Authorization: Basic {$auth}\r\n";
$request .= "\r\n";
fwrite($fp, $request);
$str = '';
stream_set_timeout($fp, 90);
while (!feof($fp))
{
$str .= fgets($fp);
}
//fwrite($fp,$str,strlen($str));
fclose($fp);
echo $str;
Вот кусок кода. Выводит иероглифы вместо картинки. Неправильно указаны HTTP заголовки как я понял. Подскажите как правильно надо. И еще вопрос.... Как эту картинку сохранить в на хосте?
header("Content-Type: image/gif"); - при выводе поможет понять браузеру что речь идет о GIF-картинке, а не об HTML-коде
Для сохранения можно использовать запись в файл:
- только сначала надо избавиться от заголовков которые пришли вместе с картинкой (один раз сохраните и сразу их увидите в файле)
После заголовков должен быть \r\n\r\n, по нему можно вырезать
header("content-type: image/jpeg"); не помогает, все равно иероглифы выводятся.
я так понимаю что возможно вот этот заголовок не правильный
$request .= "Accept: image/jpeg, application/xml;q=0.9, */*;q=0.1\r\n";
Wincert добавил 24.07.2008 в 22:17
Все разобрался... От иероглифов не избавился, но при записи в файл картинка сохраняется как она есть.
Отрезаем заголовки и записываем в файл, и все отлично получается.
$str=substr($str,strpos($str,"\r\n\r\n")+4);
$f=fopen('file.jpg', 'w');
fwrite($f, $str);
fclose($f);
Спасибо всем за помощь!
$str=substr($str,strpos($str,"\r\n\r\n")+4);
гы-гы