Скачать картинки в папку

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

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

    Greyz

    Регистр.:
    2 авг 2007
    Сообщения:
    305
    Симпатии:
    14
    Есть допустим 1000 ссылок на картинки вида(нумерация картинок в ссылке идет не по порядку:(
    xttp://123.ru/foto/1.jpg
    ..................
    xttp://123.ru/foto/9485.jpg

    Нужно все картинки скачать в одну папку с таким же именем (фактически номер.jpg).
    Помогите плз, должно быть совсем не сложно, просто сам не обладаю.
     
  2. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    задачу уточни. ты передаешь через форму эти каринки или просто есть массив ссылок, с которых надо забрать картинки?
     
  3. Google.com

    Google.com Читатель

    Заблокирован
    Регистр.:
    16 фев 2010
    Сообщения:
    250
    Симпатии:
    295
    PHP:
    <?php
    $lnk
    [0]='http://kinofilm24.com/uploads/posts/2010-06/1276349065_zvkrw.jpg';
    $lnk[1]='http://kinofilm24.com/uploads/posts/2010-06/1277498455_bsxzw.jpg';

    foreach (
    $lnk as $url){

    $savefile="pict/".basename($url);
    $ch curl_init($url);
    $fp fopen ($savefile"w");
    curl_setopt ($chCURLOPT_FILE$fp);
    curl_setopt ($chCURLOPT_HEADER0);
    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  floor(($width $new_width)   / 2);
        
    $new_top     = !$use_gor floor(($height $new_height) / 2);

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

    ?>
    Поправил скрипт, теперь можно изменять размер изображений
     
    Greyz нравится это.
  4. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    он просил не сваливать все в кучу, а выщемить номер из имени файла, создать каталог с таким номером и положить файл туда
     
  5. Google.com

    Google.com Читатель

    Заблокирован
    Регистр.:
    16 фев 2010
    Сообщения:
    250
    Симпатии:
    295
    Перечитай его сообщение
    Если нужно в папки, то эту строку
    PHP:
    $savefile="pict/".basename($url);
    заменяем на
    PHP:
    $savefile=basename($url)."/".basename($url); 
     
  6. Greyz

    Greyz

    Регистр.:
    2 авг 2007
    Сообщения:
    305
    Симпатии:
    14
    Всем спасибо! Особенно за ресайз!!!! Мне нужно будет потом все картинки в три разных размера изменять, думал ручками делать:). Один косяк, ссылки должны с файла хаваться, а тут судя по всему вручную вбиваются....
     
  7. Google.com

    Google.com Читатель

    Заблокирован
    Регистр.:
    16 фев 2010
    Сообщения:
    250
    Симпатии:
    295
    PHP:
    <?php
    $link
    =file("links.txt");

    foreach (
    $link as $url){

    $savefile="pict/".basename($url);
    $ch curl_init($url);
    $fp fopen ($savefile"w");
    curl_setopt ($chCURLOPT_FILE$fp);
    curl_setopt ($chCURLOPT_HEADER0);
    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  floor(($width $new_width)   / 2);
        
    $new_top     = !$use_gor floor(($height $new_height) / 2);

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

    ?>
     
Статус темы:
Закрыта.