Конвертация в транслит.
Барра Белый Гепард 22 Августа, 2007 - 12:30
Чтобы мне не изобретать велосипед - кто-либо знает готовую программу, которая могла бы рекурсивно попереименовать все файлы с русскими именами в транслит?
»
- Для комментирования войдите или зарегистрируйтесь

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
http://www.linux.org.ru/books/lor-faq/lorFAQ-16.html#ss16.15