Конвертация в транслит.

Чтобы мне не изобретать велосипед - кто-либо знает готовую программу, которая могла бы рекурсивно попереименовать все файлы с русскими именами в транслит?

krename

krename

Я понимаю что

Я понимаю что есть готовые решения, но я когда-то изобрёл велоспипед:)

#!/usr/bin/php
<?
$convert=array("А" => "A",
               "Б" => "B",
               "В" => "V",
               "Г" => "G",
               "Д" => "D",
               "Е" => "E",
               "Ё" => "Yo",
               "Ж" => "Zh",
               "З" => "Z",
               "И" => "I",
               "Й" => "y",
               "К" => "K",
               "Л" => "L",
               "М" => "M",
               "Н" => "N",
               "О" => "O",
               "П" => "P",
               "Р" => "R",
               "С" => "S",
               "Т" => "T",
               "У" => "U",
               "Ф" => "F",
               "Х" => "H",
               "Ц" => "C",
               "Ч" => "Ch",
               "Ш" => "Sh",
               "Щ" => "Sh",
               "Ъ" => "",
               "Ы" => "Y",
               "Ь" => "",
               "Э" => "E",
               "Ю" => "Yu",
               "Я" => "Ya",
               "а" => "a",
               "б" => "b",
               "в" => "v",
               "г" => "g",
               "д" => "d",
               "е" => "e",
               "ё" => "yo",
               "ж" => "zh",
               "з" => "z",
               "и" => "i",
               "й" => "y",
               "к" => "k",
               "л" => "l",
               "м" => "m",
               "н" => "n",
               "о" => "o",
               "п" => "p",
               "р" => "r",
               "с" => "s",
               "т" => "t",
               "у" => "u",
               "ф" => "f",
               "х" => "h",
               "ц" => "c",
               "ч" => "ch",
               "ш" => "sh",
               "щ" => "sh",
               "ъ" => "",
               "ы" => "y",
               "ь" => "",
               "э" => "e",
               "ю" => "yu",
               "я" => "ya");

function ConvertString($input)
 {
  global $convert;
  foreach ($convert as $key=>$value)
   {
    $output=str_replace($key, $value, $input);
    $input=$output;
   }
  return $output;
 }

function ConvertDir($start)
 {
  $handle=opendir($start);
  while ($file=readdir($handle))
   {

     $newname=$file;

     if($file!="." && $file!=".." && $file!=ConvertString($file))
      {
       print "Renaming ".$start."/".$file. " to ".$start."/".ConvertString($file)."\n";
       rename($start."/".$file, $start."/".ConvertString($file));
       $newname=ConvertString($file);
      }

     if ($file!="." && $file!=".." && is_dir($start."/".$newname))
      {
       ConvertDir($start."/".$newname);
      }
    }
  closedir($handle);
 }

ConvertDir(".");
?>

+1 я под сталом.

+1
я под сталом. :)
Такой же ерундой бывало занимался раньше :)
______________________________________________________
Linux home 2.6.19-gentoo-r5 #3 SMP Thu Jun 14 21:28:55 KRAST 2007 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux
Теперь и HTC TyTN :) Жалко на Windows Mobile 6.0 :(

http://www.linux.org.ru/books

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".