[ИЩУ] Скрипт для пакетного переименования файлов.

Тема в разделе ".:: Готовые решения", создана пользователем Sinelnikov, 25 ноя 2010.

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

    Sinelnikov

    Регистр.:
    13 окт 2009
    Сообщения:
    238
    Симпатии:
    54
    Есть .тхт файлы в формате ютф8 и именами 1.тхт,2.тхт и тд

    Нужно в результате - тхт файлы в формате АНСИ и именами взятыми из первой строки файла (строку удалить.)

    Алгоритм вроде не сложный - может есть у кого готовый скрипт ?
    Хотябы без смены кодировки только переименование.:thenks:
     
  2. ocheretko

    ocheretko Постоялец

    Регистр.:
    28 фев 2009
    Сообщения:
    112
    Симпатии:
    50
    int rename ( string old, string new)
     
  3. Miraage

    Miraage Angular/Laravel

    Регистр.:
    3 июн 2008
    Сообщения:
    230
    Симпатии:
    51
    т.е. в первой строке файла указывается, как он должен называться?
    если да, то попробуй так (написано на горячую руку, не тестил)
    PHP:
    function fn$file )
    {
        
    $fd fopen($file'rt');
        
    $lines explode("\n"fread($fhfilesize($file)));
        
    file_put_contents($lines[0], utf8_cp1251(implode("\n",array_slice($lines,1))));
    }
    function 
    utf8_cp1251($str)
    {
        if (
    function_exists('mb_convert_encoding')) {
            return 
    mb_convert_encoding($str'WINDOWS-1251''UTF-8');
        } else {
            return 
    iconv('UTF-8''WINDOWS-1251'$str);
        }
    }
     
  4. makia

    makia

    Регистр.:
    23 сен 2006
    Сообщения:
    273
    Симпатии:
    145
    А почему именно скрипт?

    Есть ведь Total Commander, где возможно переименование файлов, в т.ч. по маске и тп. Очень удобно.
     
  5. Miraage

    Miraage Angular/Laravel

    Регистр.:
    3 июн 2008
    Сообщения:
    230
    Симпатии:
    51
    как я понял, что название нового файла хранится в первой строке файла, который нужно переименовать.

    как-то так :)
     
  6. zek24

    zek24

    Moderator
    Регистр.:
    14 ноя 2009
    Сообщения:
    776
    Симпатии:
    230
    ReNamer - Утилита для массового переименования файлов по определенным правилам. Кроме этого, поддерживает работу с ID3v1, ID3v2 и EXIF, а также позволяет переименовывать папки.
    Может поможет, но кодировку не меняет.
     
  7. bafoed

    bafoed Постоялец

    Регистр.:
    18 ноя 2009
    Сообщения:
    67
    Симпатии:
    7
    Код:
    <?php
    if(!is_dir('output')) { mkdir('output'); }
    $files = glob("*.txt");
    foreach($files as $file) {
     $tmp = file($file);
     $newname = str_replace("\r\n", "", $tmp[0]);
     $tmp[0] = "";
     $newcontent = implode("", $tmp);
     file_put_contents('output/'.$newname.'.txt', $newcontent);
    }
    
     
Статус темы:
Закрыта.