Сохранение картинок в папку с указанных ссылок

Тема в разделе "Как сделать...", создана пользователем Greyz, 26 окт 2010.

Статус темы:
Закрыта.
  1. Greyz

    Greyz

    Регистр.:
    2 авг 2007
    Сообщения:
    305
    Симпатии:
    14
    Суть вопроса. Есть набор грубо говоря однотипных ссылок вида xttp://shop.ru/5/
    xttp://shop.ru/7/
    По каждой ссылке товар с описанием с картинкой. Нужно сграбить с каждой ссылки картинку товара и сохранить их все в одной папке с именем-номером из ссылки (5,7 и т.д.).
    P.S. Заранее огромное спасибо. Задание вроде несложное, сам в PHP почти ноль.

    Тема мной создавалась, но там была немного другая реализация, она сейчас не подходит. В том случае были ссылки уже на картинку, а сейчас столкнулся с ситуацией несовпадения артикула и имени картинки товара.
    Вот код:


    <?php
    $link=file("links.txt");

    foreach ($link as $url){

    $savefile="pict/".basename($url);
    $ch = curl_init($url);
    $fp = fopen ($savefile, "w");
    curl_setopt ($ch, CURLOPT_FILE, $fp);
    curl_setopt ($ch, CURLOPT_HEADER, 0);
    curl_exec ($ch);
    curl_close ($ch);
    fclose ($fp);
    img_resize($savefile,$savefile,500,0); //изменяем размер. ширина 500, высота пропорциональна
    }

    function img_resize($src, $out, $width, $height, $color = 0xFFFFFF, $quality = 100)
    {
    if (!file_exists($src)) {
    return false;
    }
    $size = getimagesize($src);
    $format = strtolower(substr($size['mime'], strpos($size['mime'], '/') + 1));
    $picfunc = 'imagecreatefrom'.$format;
    $gor = $width / $size[0];
    $ver = $height / $size[1];
    if ($height == 0) {
    $ver = $gor;
    $height = $ver * $size[1];
    }
    elseif ($width == 0) {
    $gor = $ver;
    $width = $gor * $size[0];
    }
    $ratio = min($gor, $ver);
    if ($gor == $ratio)
    $use_gor = true;
    else
    $use_gor = false;
    $new_width = $use_gor ? $width : floor($size[0] * $ratio);
    $new_height = !$use_gor ? $height : floor($size[1] * $ratio);
    $new_left = $use_gor ? 0 : floor(($width - $new_width) / 2);
    $new_top = !$use_gor ? 0 : floor(($height - $new_height) / 2);

    $picsrc = $picfunc($src);
    $picout = imagecreatetruecolor($width, $height);
    imagefill($picout, 0, 0, $color);
    imagecopyresampled($picout, $picsrc, $new_left, $new_top, 0, 0, $new_width, $new_height, $size[0], $size[1]);
    imagejpeg($picout, $out, $quality);
    imagedestroy($picsrc);
    imagedestroy($picout);
    return true;
    }

    ?>

     
  2. rostisslav

    rostisslav

    Регистр.:
    27 мар 2007
    Сообщения:
    361
    Симпатии:
    136
    (preg_match) тебе поможет! А если точно То пример линка на картинку дай! http://www.phpclub.net/manrus/f/preg-match.html
     
  3. karapet

    karapet

    Регистр.:
    9 сен 2008
    Сообщения:
    168
    Симпатии:
    104
    сложно помочь когда не видно в чем именно:) ваш скрипт тянет все картинки из файла с сылками на сами картинки, ресайзит и складывает в папку "/pict/". дописать что б он делал то что вы просите не сложно, но надо видет пример кода откуда парсить ссыль на картинку.. если тут не можете, пишите в лс. чем смогу, помогу...
     
Статус темы:
Закрыта.