Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

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

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

Тема в разделе "Вопросы- ответы", создана пользователем shacus, 2 май 2023.

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

    shacus Зелёный

    Сообщения:
    23
    Симпатии:
    2
    Лучших ответов:
    0
    Добрый день. Подскажите, как можно массово переименовать картинки на DLE сайте.

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

    Код:
     
    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

    Andrey555 PRO Users

    Сообщения:
    124
    Симпатии:
    40
    Лучших ответов:
    1
    Поиск и замена массовая не работает?
     
  3. ERR

    ERR Команда форума VIP Кинотрафик v2

    Сообщения:
    846
    Симпатии:
    366
    Лучших ответов:
    1
    Голосов: 1
    Скачивается папка с картинками
    Через bat файл получается список файлов в папке
    Через bat файл пишется алгоритм переименования файлов
    Заливается папка с новыми именами обратно
    В дле разделе "замена" делаем корректную замену
     
  4. igrovik

    igrovik Местный

    Сообщения:
    1.005
    Симпатии:
    292
    Лучших ответов:
    8
    Можно так, скачать базу данных. Открыть через notepad++
    ctrl+f далее заменить
    в найти вводите то что нужно заменить
    заменить на ставите то на что нужно заменить, если ничего не нужно тогда оставляете пусто, таким образом будет вырезан ваш -site.ru к примеру.

    Аааа стоп мой вариант мимо, не верно прочёл запрос((((.
     
    Последнее редактирование: 2 май 2023
  5. Черный Корсар

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

    Сообщения:
    383
    Симпатии:
    56
    Лучших ответов:
    2
    Голосов: 1
    Скачать папку с картинками и далее Total Commander, массовое переименование
     
  6. TopicStarter Overlay
    shacus

    shacus Зелёный

    Сообщения:
    23
    Симпатии:
    2
    Лучших ответов:
    0
    Всем спасибо, направления понял.

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

    igrovik Местный

    Сообщения:
    1.005
    Симпатии:
    292
    Лучших ответов:
    8
    Голосов: 1
    Можно попробовать скриптом пройти на серваке (если не желаете качать картинки конечно )) ), ну 20к фиг сколько займет по времени. Ну думаю не очень уж. Можете попробовать.

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

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

    Код:
    $name_1 = '-site-2.ru'; # На что хотим заменить
    Код:
    <?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 Зелёный

    Сообщения:
    23
    Симпатии:
    2
    Лучших ответов:
    0
    igrovik

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

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

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

    igrovik Местный

    Сообщения:
    1.005
    Симпатии:
    292
    Лучших ответов:
    8
    Может и так сработать
    Код:
    $name_1 = '-'; # На что хотим заменить
    Может и так
    Код:
    $name_1 = '-123'; # На что хотим заменить
    Нет ограничений.

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

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

    shacus Зелёный

    Сообщения:
    23
    Симпатии:
    2
    Лучших ответов:
    0
    Всем спасибо за помощь. Воспользовался скриптом от igrovik.
     
    • Нравится Нравится x 1
  11. TopicStarter Overlay
    shacus

    shacus Зелёный

    Сообщения:
    23
    Симпатии:
    2
    Лучших ответов:
    0
    igrovik

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

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

    igrovik Местный

    Сообщения:
    1.005
    Симпатии:
    292
    Лучших ответов:
    8
    Голосов: 1
    Попробуй-те этот скрипт.

    Код:
    <?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 Зелёный

    Сообщения:
    23
    Симпатии:
    2
    Лучших ответов:
    0
    igrovik
    Все работает. Благодарю еще раз.
     
    • Нравится Нравится x 1