Парсинг картинки

Тема в разделе "PHP", создана пользователем yeaahhh, 13 апр 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. yeaahhh

    yeaahhh

    Регистр.:
    8 май 2008
    Сообщения:
    278
    Симпатии:
    11
    Друзья, помогите пожалуйста с парсингом картинки. Знаю, что темы уже создавались.. Видел их, но так и не понял основного принципа выдирания картинки с другого сайта и переноса на свой..

    Не совсем понял как работает copy()..

    Вот, к примеру есть такая картинка:
    http://site.ru/uploads/files/7bfdcad5dd.jpg

    Просьба, написать алгоритм с пояснениями(без изменения размера и т.п.).. Заранее большое спасибо..
     
  2. Brevis

    Brevis Создатель

    Регистр.:
    6 окт 2007
    Сообщения:
    16
    Симпатии:
    7
    Самый простой способ:
    PHP:
    $img file_get_contents('http://site.ru/uploads/files/7bfdcad5dd.jpg');
    if (
    $imgfile_put_contents($_SERVER['DOCUMENT_ROOT'].'/image.jpg'$img);
    В результате у Вас появится картинка под именем image.jpg в каталоге со скриптом.
     
    zss и yeaahhh нравится это.
  3. e64f

    e64f Постоялец

    Регистр.:
    2 ноя 2008
    Сообщения:
    95
    Симпатии:
    6
    Угу, а если сервак не отдаст картинку по каким то причинам (куки или реферер не правильный) то не появится.

    Кстати ТС, по вашей ссылке совсем не картинка лежит.
     
  4. yeaahhh

    yeaahhh

    Регистр.:
    8 май 2008
    Сообщения:
    278
    Симпатии:
    11
    Что-то не получается.. Наверное, что-то не правильно делаю..

    PHP:
    $img "http://site1.ru/uploads/files/sdnsdnfsjnf.jpg";
    $file_prefix time() + rand1100 );
    $v "http://site2.ru/";
    $img file_get_contents('$img');
    if (
    $img
    file_put_contents('$v."/images/".$file_prefix.".jpg'$img);
    Пишет ошибку:
    PHP:
    Warningfile_get_contents($img) [function.file-get-contents]: failed to open streamNo such file or directory in /home/mysite/public_html/ppp/pars.php on line 134
    На этой линии:
    PHP:
    $img file_get_contents('$img');
     
  5. lobzik

    lobzik

    Регистр.:
    8 авг 2006
    Сообщения:
    311
    Симпатии:
    49
    нужно
    PHP:
    $img file_get_contents($img); 
    Если хотите забирать файл file_get_contents'ом то используйте контекст
     
  6. yeaahhh

    yeaahhh

    Регистр.:
    8 май 2008
    Сообщения:
    278
    Симпатии:
    11
    lobzik, к сожалению, пока ещё не особо силён в php..

    Мог бы кто-нибудь привести данный код в рабочий вид?
    PHP:
    $img "http://site1.ru/uploads/files/sdnsdnfsjnf.jpg";
    $file_prefix time() + rand1100 );
    $v "http://site2.ru/";
    $img file_get_contents('$img');
    if (
    $img
    file_put_contents('$v."/images/".$file_prefix.".jpg'$img);  
    Параметры:
    Изображение, которое нужно спарсить: http://site1.ru/uploads/files/sdnsdnfsjnf.jpg
    Папка, в которую нужно вставить: http://site2.ru/images/
    Буду очень благодарен..
     
  7. Nafania

    Nafania

    Регистр.:
    24 мар 2007
    Сообщения:
    167
    Симпатии:
    46
    В одинарных кавычках переменные не обрабатываются

    это
    PHP:
    $img file_get_contents('$img');
    и это
    PHP:
    file_put_contents('$v."/images/".$file_prefix.".jpg'$img);  
    будет работать не так, как вы думаете.
    Вторая строка вообще работать не будет, даже без одинарных кавычек, потому что это "http://site2.ru/images/" не папка, а адрес.
     
    yeaahhh нравится это.
  8. yeaahhh

    yeaahhh

    Регистр.:
    8 май 2008
    Сообщения:
    278
    Симпатии:
    11
    Благодарю.. Дело сдвинолось с места..
    после такого кода:
    PHP:
    $img "http://site1.ru/uploads/files/sdnsdnfsjnf.jpg";
    $file_prefix time() + rand1100 );
    $v "http://site2.ru/";
    $img file_get_contents("$img");
    if (
    $img
    file_put_contents("$v.'/images/'.$file_prefix.'.jpg"$img); 
    Выскакивает следующая ошибка:
    PHP:
    Warningfile_put_contents() [function.file-put-contents]: Only 0 of 34303 bytes writtenpossibly out of free disk space in /home/mysite/public_html/ppp/pars.php on line 137
    Свободного места на диске - 100мб.. Не подскажете, в чём теперь проблема?)
     
  9. balcon

    balcon Создатель

    Регистр.:
    13 ноя 2008
    Сообщения:
    39
    Симпатии:
    7
    Тебе ответили, читай внимательнее
     
  10. yeaahhh

    yeaahhh

    Регистр.:
    8 май 2008
    Сообщения:
    278
    Симпатии:
    11
    Ура.. До меня дошло..
    Получилось) Всем спасибо.
     
Статус темы:
Закрыта.