Dismiss Notice
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Вопрос? Переименовать массово картинки

Discussion in 'Вопросы- ответы' started by shacus, May 2, 2023.

02.05.23 в 17:10
03.05.23 в 12:27
12
488
0
  1. TopicStarter Overlay
    shacus

    shacus Зелёный

    Joined:
    Jul 28, 2021
    Messages:
    14
    Best Answers:
    0
    Ratings:
    +2 / 0 / -0
    Добрый день. Подскажите, как можно массово переименовать картинки на DLE сайте.

    Имеется тонна картинок, в конце имени каждой стоит адрес старого сайта.

    Code:
     
    http://site.ru./uploads/posts/2020-10/1286691170_picture-07-site.ru.jpg
    http://site.ru./uploads/posts/2018-11/1227089932_picture-08-site.ru.jpg
    http://site.ru./uploads/posts/2015-11/1226853889_picture-09-site.ru.jpg
    В идеале хочется
    или
    переименовать -site.ru.jpg на -site2.ru.jpg
    или
    убрать вообще из имени картинки старое имя сайта.
     
  2. Andrey555

    PRO Users

    Joined:
    Jan 30, 2018
    Messages:
    121
    Best Answers:
    1
    Ratings:
    +137 / 65 / -0
    Поиск и замена массовая не работает?
     
  3. ERR

    ERR
    Staff Member VIP Кинотрафик v2

    Joined:
    Apr 17, 2015
    Messages:
    831
    Best Answers:
    1
    Ratings:
    +462 / 69 / -0
    Скачивается папка с картинками
    Через bat файл получается список файлов в папке
    Через bat файл пишется алгоритм переименования файлов
    Заливается папка с новыми именами обратно
    В дле разделе "замена" делаем корректную замену
     
  4. igrovik

    igrovik Местный

    Joined:
    Dec 11, 2016
    Messages:
    1,007
    Best Answers:
    8
    Ratings:
    +355 / 12 / -0
    Можно так, скачать базу данных. Открыть через notepad++
    ctrl+f далее заменить
    в найти вводите то что нужно заменить
    заменить на ставите то на что нужно заменить, если ничего не нужно тогда оставляете пусто, таким образом будет вырезан ваш -site.ru к примеру.

    Аааа стоп мой вариант мимо, не верно прочёл запрос((((.
     
    #4 igrovik, May 2, 2023
    Last edited: May 2, 2023
  5. Черный Корсар

    Черный Корсар Бывалый

    Joined:
    May 22, 2019
    Messages:
    357
    Best Answers:
    2
    Ratings:
    +95 / 27 / -0
    Скачать папку с картинками и далее Total Commander, массовое переименование
     
  6. TopicStarter Overlay
    shacus

    shacus Зелёный

    Joined:
    Jul 28, 2021
    Messages:
    14
    Best Answers:
    0
    Ratings:
    +2 / 0 / -0
    Всем спасибо, направления понял.

    Нужно скачать, для начала, 20к картинок.
     
  7. igrovik

    igrovik Местный

    Joined:
    Dec 11, 2016
    Messages:
    1,007
    Best Answers:
    8
    Ratings:
    +355 / 12 / -0
    Можно попробовать скриптом пройти на серваке (если не желаете качать картинки конечно )) ), ну 20к фиг сколько займет по времени. Ну думаю не очень уж. Можете попробовать.

    Создать файл php с содержимым.
    произвести настройку

    Code:
    $name = '-site.ru';# Что хотим заменить
    и

    Code:
    $name_1 = '-site-2.ru'; # На что хотим заменить
    Code:
    <?php
    ini_set('max_execution_time', '0');
    
    $name = '-site.ru';# Что хотим заменить
    $name_1 = '-site-2.ru'; # На что хотим заменить
    
    if (file_exists("uploads/posts/".$papka)){
        foreach (glob("uploads/posts/*") as $files){
            $i = 0;
            foreach (glob($files."/*") as $index => $files_1){
                $file = $files_1;
                preg_match('#posts\/([0-9]+-[0-9]+)\/#',$file,$papka);
                
                $file = preg_replace("#uploads\/posts\/[0-9]+-[0-9]+\/#",'',$file);
                $file = str_replace($name,$name_1,$file);
                
                rename($files_1,"uploads/posts/".$papka[1].'/'.$file);
                
                $i++;
            }
        }
     
    }
    
    
    ?>
     
  8. TopicStarter Overlay
    shacus

    shacus Зелёный

    Joined:
    Jul 28, 2021
    Messages:
    14
    Best Answers:
    0
    Ratings:
    +2 / 0 / -0
    igrovik

    Code:
    $name = '-site.ru';# Что хотим заменить
    Code:
    $name_1 = '-'; # На что хотим заменить
    Подскажите, так сработает, или есть какое-то минимальное количество символов?

    или лучше так (но там есть и png и, возможно, другие форматы файлов)

    Code:
    $name = '-site.ru.jpg';# Что хотим заменить
    Code:
    $name_1 = '-.jpg'; # На что хотим заменить
     
  9. igrovik

    igrovik Местный

    Joined:
    Dec 11, 2016
    Messages:
    1,007
    Best Answers:
    8
    Ratings:
    +355 / 12 / -0
    Может и так сработать
    Code:
    $name_1 = '-'; # На что хотим заменить
    Может и так
    Code:
    $name_1 = '-123'; # На что хотим заменить
    Нет ограничений.

    Без разницы какие там форматы, данный скрипт просто меняет эту часть -site.ru на ту что вам нужно.
    Лучше делать так

    Code:
    $name = '-site.ru';# Что хотим заменить
    Code:
    $name_1 = 'То что хотите видеть вместо -site.ru '; # На что хотим заменить 
    Не используя форматов.
     
  10. TopicStarter Overlay
    shacus

    shacus Зелёный

    Joined:
    Jul 28, 2021
    Messages:
    14
    Best Answers:
    0
    Ratings:
    +2 / 0 / -0
    Всем спасибо за помощь. Воспользовался скриптом от igrovik.
     
    • Нравится Нравится x 1
  11. TopicStarter Overlay
    shacus

    shacus Зелёный

    Joined:
    Jul 28, 2021
    Messages:
    14
    Best Answers:
    0
    Ratings:
    +2 / 0 / -0
    igrovik

    Заметил сегодня, что скрипт не обработал картинки, которые находятся в подпапках thumbs/

    Пример папки
    Code:
    site.ru/uploads/posts/2017-11/thumbs/
     
  12. igrovik

    igrovik Местный

    Joined:
    Dec 11, 2016
    Messages:
    1,007
    Best Answers:
    8
    Ratings:
    +355 / 12 / -0
    Попробуй-те этот скрипт.

    Code:
    <?php
    ini_set('max_execution_time', '0');
    
    $name = '-site.ru';# Что хотим заменить
    $name_1 = '-site-2.ru'; # На что хотим заменить
    
    if (file_exists("uploads/posts/".$papka)){
        foreach (glob("uploads/posts/*") as $files){
         
            foreach (glob($files."/*") as $index => $files_1){
                if(stripos($files_1,'/thumbs') !== false){
                    $file = $files_1;
                    preg_match('#posts\/([0-9]+-[0-9]+)\/#',$files_1,$papka);
                    
                    foreach (glob($files_1."/*") as $files_2){
                        #echo $files_2."\r\n";
                        $file_2 = $files_2;
                        $file_2 = preg_replace("#uploads\/posts\/[0-9]+-[0-9]+\/thumbs\/#",'',$file_2);
                        $file_2 = str_replace($name,$name_1,$file_2);
                        rename($files_2,"uploads/posts/".$papka[1].'/thumbs/'.$file_2);
                    }
                }
            }
        }
     
    }
    
    
    ?>
     
  13. TopicStarter Overlay
    shacus

    shacus Зелёный

    Joined:
    Jul 28, 2021
    Messages:
    14
    Best Answers:
    0
    Ratings:
    +2 / 0 / -0
    igrovik
    Все работает. Благодарю еще раз.
     
    • Нравится Нравится x 1
Яндекс.Метрика