Вот скриптик... Скрипт переименовываетт все файли с кирилическими названиями... в папке.. и во вложенных папках... Листинг 1. <? set_time_limit(0); include ("alfavit.txt"); echo " <html> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\"> </html> "; if($act==""){ echo "Введи путь:<br><form action=\"?act=ren\" method=post name=fr1><input type=text name=dir size=35><input type=text name=pref> - приставка к концу имени файла (до рассщирения)<input type=button value=ОК onclick=\"if(fr1.dir.value){if(confirm('Внимание! Все файлы в папке '+fr1.dir.value+' и во всех вложенных папках будут переименованы.'))fr1.submit();}else alert('Укажите путь');\"></form><br><br> Не вздумай вести адрес системных папок))), можешь поколечить систему))....<br> Примеры ввода пути:1. C:/папка или C:/папка/. 2. папка или папка/ - в данном случае папка имеется ввиду, что находится там, где и сама программа... 3. также можно ввести ./../папка, ну я думаю это понятно, что папка находится на уровне выше, чем где лежит сама программа... "; } if($act=="ren"){ echo "<b>Результат выполнения задачи:</b><br>"; if($dir){ if(is_dir($dir)){ $len=strlen($dir); if($dir[$len-1]!="/")$dir.="/"; $arr=listDirToArray($dir); array_push($arr, $dir); $i=0; $num=0; while($arr[$i]){ $num=renameFiles($arr[$i]); $files[0]+=$num[0]; $files[1]+=$num[1]; $i++; } echo "<br>Всего файлов <b>".$files[0]."</b> в <b>$i</b> папках, из них переименовано <b>".$files[1]."</b>.<br></br><a href=\"index.php\"><<Новая задача</a>"; }else echo "Invalid path"; }else echo "Invalid path"; } /////////////////////////////////////////////// function listDirToArray($dir){ $dirArray=array(); if(is_dir($dir)){ //array_push($dirArray,$dir); $d = dir($dir); $path=$d->path; while ($entry = $d->read()) { if(is_dir($path.$entry)){ if($entry !="." && $entry!=".."){ $newDir=$path.$entry; $len=strlen($newDir); if($newDir[$len-1]!="/")$newDir.="/"; array_push($dirArray, $newDir); $tmpAr=listDirToArray($newDir); $dirArray=array_merge($dirArray,$tmpAr); } } } $d->close(); } return $dirArray; } function renameFiles($dir){ global $arCyr, $pref; if(is_dir($dir)){ $d = dir($dir); $i[0]=0;$i[1]=0; $path=$d->path; while ($entry = $d->read()){ if(is_file($path.$entry)){ $j=0; while($j<=strlen($entry)){ if(array_key_exists($entry[$j], $arCyr))$strTmp=$arCyr[$entry[$j]];else $strTmp=$entry[$j]; $strNew.=$strTmp; $j++; } $start=strrpos($strNew, "."); if($start === false){ $strNew.=$pref; }else{ $tmp=substr($strNew,0,$start); $ras=substr($strNew,$start+1,strlen($strNew)); $strNew=$tmp.$pref.".".$ras; } if(@rename($path.$entry,$path.$strNew))$i[1]++; else echo "<br>Ошибка переименования файла <b>$dir$entry</b> в <b>$dir$strNew</b>. Вероятнее конечный файл уже существует.<br>"; $strNew=""; $i[0]++; } } $d->close(); }else echo "Invalid path"; return $i; } ?> и сам alfavit.txt <? $arCyr = array( "а"=>"a", "б"=>"b", "в"=>"v", "г"=>"g", "д"=>"d", "е"=>"e", "ё"=>"yo", "ж"=>"j", "з"=>"z", "и"=>"i", "к"=>"k", "л"=>"l", "м"=>"m", "н"=>"n", "о"=>"o", "р"=>"r", "с"=>"s", "т"=>"t", "у"=>"u", "ф"=>"f", "х"=>"kh", "ц"=>"c", "ч"=>"ch", "ш"=>"sh", "щ"=>"csh", "ъ"=>"", "ы"=>"i", "ь"=>"", "э"=>"e", "ю"=>"yu", "я"=>"ya", "й"=>"y", "п"=>"p", "А"=>"A", "Б"=>"B", "В"=>"V", "Г"=>"G", "Д"=>"D", "Е"=>"E", "Ё"=>"YO", "Ж"=>"J", "З"=>"Z", "И"=>"I", "К"=>"K", "Л"=>"L", "М"=>"M", "Н"=>"N", "О"=>"O", "Р"=>"R", "С"=>"S", "Т"=>"T", "У"=>"U", "Ф"=>"F", "Х"=>"KH", "Ц"=>"C", "Ч"=>"CH", "Ш"=>"SH", "Щ"=>"CSH", "Ъ"=>"", "Ы"=>"I", "Ь"=>"", "Э"=>"E", "Ю"=>"YU", "Я"=>"YA", "Й"=>"Y", "П"=>"P", " "=>"_" ); ?> может кону набо дудет... меня попросили написать.. на сервере лежит куча мп3 файло (гигометров 500) которые наименованны кирилицей... вот собвственно говорят помогло)))