Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: CURL и изображения

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
Ezi
Отправлено: 21 Марта, 2011 - 08:28:59
Post Id



Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010  


Помог: 2 раз(а)




как с помощью CURL сохранить изображение с другого хоста, которое не имеет точной ссылки, тоеть не http://img-fotki[dot]yandex[dot]ru/get/3[dot][dot][dot]7035843_orig[dot]jpg а http://img-fotki[dot]yandex[dot]ru/get/3[dot][dot][dot]25_47035843_orig


-----
Хочешь жить - умей вертеться
 
 Top
Stas.progger
Отправлено: 21 Марта, 2011 - 08:36:18
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




Ezi, а зачем для такой простой задачи CURL?

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $src = file_get_contents('http://img-fotki.yandex.ru/get/3203/mirnyatom.2/0_1ed25_47035843_orig');
  3.  
  4. $f = fopen('img.jpeg','w+');
  5. fwrite($f,$src);
  6. fclose($f);
  7.  
 
 Top
Ezi
Отправлено: 21 Марта, 2011 - 08:41:18
Post Id



Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010  


Помог: 2 раз(а)




Stas.progger, задача то совсем не проста))) извини но я не так вопрос задал, мне необходимо фото сна сервере сохранить...


Вся проблема в том что не поддерживается докачка изображений, а для моего инета 4 мб это смертельно, вот и хочу на хост залить, а затем скачивать...
(Добавление)
Мляяяяяяяя, что-то я ступил, код то тот))) Сейчас проверю на работоспособность)))
(Добавление)
Не работает Хм


-----
Хочешь жить - умей вертеться
 
 Top
ALEN
Отправлено: 21 Марта, 2011 - 09:09:37
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




Stas.progger пишет:
а зачем для такой простой задачи CURL?

file_get_contents - dj многих случаях хостеры отключают возможность простых функций работать с url - поэтому без curl код не будет работать.
Так же с помощью CURL можно подделать заголовки, чтоб не вызывать подозрения и не попасть в блок.
 
 Top
Ezi
Отправлено: 21 Марта, 2011 - 09:12:40
Post Id



Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010  


Помог: 2 раз(а)




ALEN, как с помощью твоего класса получить изображение?


вод скрипта:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include_once("parser.php");
  3. $url = 'http://img-fotki.yandex.ru/get/3203/mirnyatom.2/0_1ed25_47035843_orig.jpg';
  4. $parser = new cms_http_parse;
  5. $content = $parser->get($url);
  6. print $content;
  7. ?>

Даже если просто выводить в браузер, то выводит:
<\рЩЂЯЎ@†ЦПwжя Огорчение


-----
Хочешь жить - умей вертеться
 
 Top
EuGen Администратор
Отправлено: 21 Марта, 2011 - 09:16:42
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Перед выводом контента высылайте заголовок о том, что это картинка.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Ezi
Отправлено: 21 Марта, 2011 - 09:25:37
Post Id



Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010  


Помог: 2 раз(а)




Не работает(((


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include_once("parser.php");
  3. $url = 'http://img-fotki.yandex.ru/get/3203/mirnyatom.2/0_1ed25_47035843_orig.jpg';
  4. $parser = new cms_http_parse;
  5. $content = $parser->get($url);
  6. header("Content-type: image/jpeg");
  7. print ($content);
  8. ?>

Ошибка в том что скрипт не может похоже не получить картинку
(Добавление)
Заголовки

Исходный запрос
GET /parser/image.php HTTP/1.1
User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01
Host: ezi.cervera.ru
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers

Исходный ответ
HTTP/1.1 200 OK
Date: Mon, 21 Mar 2011 07:04:38 GMT
Server: Apache/2
X-Powered-By: PHP/5.2.13
Vary: Accept-Encoding,User-Agent
Content-Encoding: gzip
Content-Length: 236
Keep-Alive: timeout=1, max=100
Connection: Keep-Alive
Content-Type: image/jpeg


-----
Хочешь жить - умей вертеться
 
 Top
ALEN
Отправлено: 21 Марта, 2011 - 10:23:59
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




А что нужно делать с картинкой далее?
 
 Top
Ezi
Отправлено: 21 Марта, 2011 - 10:24:58
Post Id



Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010  


Помог: 2 раз(а)




Решил обойтись без CURL, в итоге ошибка: 400 Bad Request
В чём проблема то, код вот:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $out = "GET /get/3203/mirnyatom.2/0_1ed25_47035843_orig HTTP/1.1/1.1\n";
  3. $out .= "Host: img-fotki.yandex.ru\n";
  4. $out .= "Referer: http://fotki.yandex.ru/users/mirnyatom/view/126245?page=0/\n";
  5. $out .= "User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01\n";
  6. $out .= "\n\n";
  7. $fp = fsockopen("img-fotki.yandex.ru", 80, $errno, $errstr, 10);
  8. fputs($fp, $out);
  9. while($gets=fgets($fp,2048))
  10. {
  11. print $gets;
  12. }
  13. fclose($fp);
  14. ?>

(Добавление)
ALEN пишет:
А что нужно делать с картинкой далее?
сохранить её на локальном хосте


-----
Хочешь жить - умей вертеться
 
 Top
Stas.progger
Отправлено: 21 Марта, 2011 - 11:13:48
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




исправьте на
 
 Top
Ezi
Отправлено: 21 Марта, 2011 - 11:30:00
Post Id



Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010  


Помог: 2 раз(а)




Stas.progger пишет:
Ezi,
CODE (htmlphp):
скопировать код в буфер обмена
HTTP/1.1/1.1
исправьте на
CODE (htmlphp):
скопировать код в буфер обмена
HTTP/1.1


Я это исправил, но всё равно не работает
(Добавление)
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $out = "GET /get/3203/mirnyatom.2/0_1ed25_47035843_orig HTTP/1.1\n";
  3. $out .= "User-Agent: Opera\n";
  4. $out .= "Host: img-fotki.yandex.ru/\n";
  5. $out .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\n";
  6. $out .= "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8\n";
  7. $out .= "Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1\n";
  8. $out .= "Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0\n";
  9. $out .= "Connection: Keep-Alive, TE\n";
  10. $out .= "TE: deflate, gzip, chunked, identity, trailers\n";
  11. $out .= "\n\n";
  12. $fp = fsockopen("img-fotki.yandex.ru", 80, $errno, $errstr, 10);
  13. fputs($fp, $out);
  14. while($gets=fgets($fp, 4940261))
  15. {
  16. print $gets;
  17. }
  18. fclose($fp);
  19. ?>



Я ему даже свои кукисы передавал))))


-----
Хочешь жить - умей вертеться
 
 Top
ALEN
Отправлено: 21 Марта, 2011 - 11:32:24
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




http://forum.php.su/topic.php?fo...35&topic=736

PHP:
скопировать код в буфер обмена
  1. $img=new cms_img;
  2. $img->load_url('http://vi.sualize.us/thumbs/09/02/02/animal,animals,bitty2,cat,cute-a966d93a53edd4728202920b20aebbfd_h.jpg',tmp/tmp.png');
  3. $img->save("img1.gif");
  4. $img->destroy();
 
 Top
Мелкий Супермодератор
Отправлено: 21 Марта, 2011 - 11:37:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Двух заголовков
GET /get/3203/mirnyatom.2/0_1ed25_47 035843_orig HTTP/1.1
Host: img-fotki.yandex.ru
Вполне достаточно, хост отдаёт картинку. Проверил телнетом.

Проверяете где? На локальной машине?

(Отредактировано автором: 21 Марта, 2011 - 11:40:11)



-----
PostgreSQL DBA
 
 Top
Ezi
Отправлено: 21 Марта, 2011 - 11:57:20
Post Id



Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010  


Помог: 2 раз(а)




ALEN,
Вот код:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include_once("imageparser.php");
  3. $img=new cms_img;
  4. $img->load_url('http://img-fotki.yandex.ru/get/3203/mirnyatom.2/0_1ed25_47035843_orig.jpg', 'tmp/tmp.png');
  5. $img->save("img1.gif");
  6. $img->destroy();
  7. ?>


вот какая ошибка:
Спойлер (Отобразить)




Мелкий пишет:
Проверяете где? На локальной машине?

Нет, на хосте...


-----
Хочешь жить - умей вертеться
 
 Top
Okula
Отправлено: 21 Марта, 2011 - 13:27:41
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




А функцией copy() скоприровать пробовал? Подмигивание
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB