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

Статус
В этой теме нельзя размещать новые ответы.

Sinelnikov

Гуру форума
Регистрация
13 Окт 2009
Сообщения
235
Реакции
58
Есть .тхт файлы в формате ютф8 и именами 1.тхт,2.тхт и тд

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

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

ocheretko

Постоялец
Регистрация
28 Фев 2009
Сообщения
111
Реакции
50
int rename ( string old, string new)
 

Miraage

Angular/Laravel
Регистрация
3 Июн 2008
Сообщения
231
Реакции
51
т.е. в первой строке файла указывается, как он должен называться?
если да, то попробуй так (написано на горячую руку, не тестил)
PHP:
function fn( $file )
{
    $fd = fopen($file, 'rt');
    $lines = explode("\n", fread($fh, filesize($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);
    }
}
 

makia

Постоялец
Регистрация
23 Сен 2006
Сообщения
269
Реакции
148
А почему именно скрипт?

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

Miraage

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

как-то так :)
 

zek24

Мой дом здесь!
Команда форума
Модератор
Регистрация
14 Ноя 2009
Сообщения
811
Реакции
310
ReNamer - Утилита для массового переименования файлов по определенным правилам. Кроме этого, поддерживает работу с ID3v1, ID3v2 и EXIF, а также позволяет переименовывать папки.
Может поможет, но кодировку не меняет.
 

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);
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху