1. Внимание! Строго запрещен ап своих тем чаще чем раз в 7 дней! Если ваши услуги/товары никому не интересны - UP вам не поможет! Хотите чтобы тема была сверху всегда - оплачивайте закрепление!

[Работа] Написание не сложного скрипта.

Тема в разделе "Рекламный раздел", создана пользователем IamWolf, 9 сен 2008.

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

    IamWolf Постоялец

    Регистр.:
    24 фев 2008
    Сообщения:
    87
    Симпатии:
    138
    НУжен не сложный скрипт.
    Задача:

    Лазить по папке, проверять файлы на "одубликаты" по размеру (в плоть до байт) по разрешению (будут только картинки, и желательно по размеру (высота ширина в пикселях)
    Будет в 2-3 папках, планировал в крон записать что бы выполнялся автоматом.

    Кто что предложит? Если можите за $ то сразу цена, вроде все предельно понятно.

    очень нужно....база картинок обновляется как мной так и другими....и очень тяжело контролировать и помнить....


    Ответы в теме, ЛС, АСЯ (в инфе)
     
  2. Zircool

    Zircool Создатель

    Регистр.:
    1 июн 2008
    Сообщения:
    35
    Симпатии:
    43
    Можете подробнее описать функции скрипта. Скрипт будет искать дубликаты файлов ещё с помощью имени файлов, и какую функцию должен использовать скрипт, если находит 2 одинаковых файла?
     
  3. IamWolf

    IamWolf Постоялец

    Регистр.:
    24 фев 2008
    Сообщения:
    87
    Симпатии:
    138
    Наприсали за 10 мин на др форуме...Тему клоузд, извените если что не так.


    PHP:
    <?

    $dirs[]='./1';
    $dirs[]='./2';    //сюда заносим папки которые обходим
            //если надо рекурсивно обойти одну папку - сделаю )
    $pics=Array();
    $names=Array();
    $c=0;

    $logfile="./log.txt";    //лог
    $write_log=true//true - пишем лог, false - не пишем лог
    $kill_dup=true//true - удаляем дубликаты, false - пускай живут

    for($i=0;$i<sizeof($dirs);$i++)
    {
        
    $d dir($dirs[$i]);
        while (
    false !== ($entry $d->read()))
        {
            if(
    $entry!='.'&&$entry!='..')
            {
                
    //$pics[$c]['name']=$dirs[$i].'/'.$entry;
                
    $pics[$c]=filesize($dirs[$i].'/'.$entry);
                
    $pic_info=@getimagesize($dirs[$i].'/'.$entry);
                
    $pics[$c].='|'.$pic_info[0];
                
    $pics[$c].='|'.$pic_info[1];
                
                
    $names[$c]=$dirs[$i].'/'.$entry;
                
    $c++;
            }
        }
        
    $d->close();
    }

    $t=array_unique($pics);

    //print "Уникальные картинки:<br>";

    foreach($t as $key=>$value)
    {
        
    //print $names[$key]."<br>\r\n"; //выводим список уникальных картинок
    }
    $dif=array_diff_key($pics,$t);

    //print "Дубликаты:<br>";

    $f=fopen($logfile,'a');

    foreach(
    $dif as $key=>$value)
    {
        
    //print $names[$key]."<br>\r\n"; //выводим список повторяющихся картинок
        
    if($write_log)fwrite($f,$names[$key]."\r\n");
        if(
    $kill_dup)unlink($names[$key]);
    }

    fclose($f);

    ?>
    Или

    PHP:
    <?
    function 
    f_dir ($d$log$param)
    {
        
    $log=fopen($log,$param);
        
    $v=0;$c=0;
        
    $dir opendir($d); 
        while((
    $f readdir($dir))){ 
            if ( 
    is_file ($d."/".$f)){
                
    $c++;$v=0;
                
    $im=getimagesize($d."/".$f);
                if(
    $im=='')continue;
                
    $size=filesize($d."/".$f);
                
    $dirr opendir($d);
                while((
    $ff readdir($dirr))){
                    if ( (
    is_file ($d."/".$ff)) )
                    {
                        
    $v=$v+1;
                        if( 
    $v $c
                        
    and $size==filesize($d."/".$ff)
                        and 
    $im==getimagesize($d."/".$ff) ){
                            
    fwrite($log,"$f => $ff\r\n");
                        }
                    }
                }
                
    closedir ($dirr);
            }
        }
        
    closedir ($dir);
        return 
    true;
    }

    f_dir ("./t","./log.txt","w");

      
    // 1 параметр - каталог в котором следут искать дубликаты
      // 2 параметр- фаил куда будут записаны рез-ты
      // 3 параметр- "w" -  старые рез-ты будут перезаписаны
      //                "a" - старые рез-ты будут сохранены, а новые будут записаны ниже
    ?>
     
Статус темы:
Закрыта.