Блог старого компьютера

Блог старого компьютера


Главная PHP Убрать из названия файлов пробел. (Массовое переименование)

Убрать из названия файлов пробел. (Массовое переименование)

31.07.2014 03:35 Администратор PHP
Печать PDF

Совершенно не хочется допускать на сайте файлы в которых есть русские символы и пробелы. Как правило после различных переносов названия таких файлов превращается в непонятные кракозяблы. Дабы это избежать я всегда в названии использую только латинские буквы. Недавно принесли кучу фотографий с цифровика в названии которых присутствовал пробел. Переименовывать все файлы в ручную займет очень много времени. Попытки переименовать массово с помощью виндовса не дали нужного результата так как все равно добавляли пробел. Тогда пришлось по быстрому написать php скрипт который заменяет пробел на землю в названиях файлов которые лежат в папке.

foreach (glob("*.*") as $filename) {
$newfilename = str_replace(" ","_",$filename);
if(rename($filename, $newfilename)==true){
echo $newfilename;
}
else{
echo 'Ошибка';
}
}

Понадобилось так же перевести все названия изображений в папке транслитом, за пару минут сварганил код:

function webtranslit($str){
$tr = array(
"А"=>"a","Б"=>"b","В"=>"v","Г"=>"g",
"Д"=>"d","Е"=>"e","Ж"=>"j","З"=>"z","И"=>"i",
"Й"=>"y","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n",
"О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t",
"У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"ts","Ч"=>"ch",
"Ш"=>"sh","Щ"=>"sch","Ъ"=>"","Ы"=>"yi","Ь"=>"",
"Э"=>"e","Ю"=>"yu","Я"=>"ya","а"=>"a","б"=>"b",
"в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j",
"з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y",
"ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya",
" "=> "-", "."=> "", "/"=> "_"
);
$urlstr = strtr($str,$tr);
$urlstr = preg_replace('/[^A-Za-z0-9_\-]/', '', $urlstr);
return $urlstr;
}
foreach (glob("*.*") as $filename) {
$path_info = pathinfo($filename);
$newfilename =$path_info['filename'];
$extension =$path_info['extension'];
$newfilename = webtranslit($newfilename);
if(rename($filename, $newfilename.".".$extension)==true){
echo $newfilename;
}
else{
echo 'Ошибка';
}
}

Добавить комментарий


Защитный код
Обновить

Поиск

Голосование

Что Вы думаете на счет битрикса?
 

Все материалы раздела