Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Функция: Найти все файлы с крякозябрамив названии

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: PHP
Uchkuma
Отправлено: 19 Января, 2011 - 12:46:37
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Мульен раз объяснял клиентам, чтоб не заливали на свои сайты файлы с русскими буквами и пробелами, во-избежание всякого рода проблем - все впустую!

На днях хостер по моей просьбе перенес файлы моего аккаунта на новый сервер. После переноса все имена файлов с кириллическими символами благополучно "слетели"! Т.е. теперь вместо файликов "Изображение 024.jpg" мы имеем "Èçîáðà æåíèå 024.jpg" и т.п. На сайтах и в галереях такие картинки, конечно же, перестали отображаться.

Хотел было скрипт конвертирования уже писать, но хостер попросил предоставить список таких файлов.
Ну были бы они такие все в одной папке... но их же сотни по разным папкам и вперемешку с нормальными латинскими названиями!
Хотел было расстроиться, но уже через минуту написал вот такой скриптик поиска:
PHP:
скопировать код в буфер обмена
  1. $pattern = '#[^-\w.,/+!()%^$&~ \[\]]#U';//перечисляем все разрешенные символы в имени файла
  2. function glob_recursive($dir){
  3. global $pattern;
  4.  
  5. foreach (glob($dir.'*') as $filename) {
  6.  
  7. if(preg_match($pattern, substr($filename, strrpos($filename, '/')))) echo $filename.'<br>';
  8.  
  9. if(is_dir($filename)) glob_recursive($filename.'/*');
  10.  
  11. }
  12.  
  13. }
  14.  
  15. $dir = '../clients/';
  16. glob_recursive($dir);

(Добавление)
У кого есть желание, запостите ниже доработанную функцию с конвертированием символов с указанием правильной кодировки.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Пользовательские функции »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB