Доброго времени суток.
Проблема заключается в чтении имен файлов с рус символами.
Знакомый попросил написать ему инет магазинчик, я оформил это как модуль joomы
у которой кодировка страниц и бд в utf-8.
Каждый товар имеет свой код, в папке images/foto лежат фотки товара под названием
код+.jpg задача вроде бы не хитрая берем код из базы прибавляем расширение и проверяем на наличие файла, если тру то говорим что фото товара есть.
Но подвох в том что некоторые коды товара имеют русские символы и в место них в пути образуются "закорючки". (коды берутся из 1с муси и от меня не как не зависят)
Перепробовав все что только можно я решил сделать костыль, динамически заменять рус символы в коде товара на латинские вообщем транслит
теперь же встала задача переименовать файлы в каталоге, там где то 2500 изображений
пробовал вот такой код
PHP:
скопировать код в буфер обмена
$file_list = glob("../images/foto/*.jpg"); //читаем файлы в массив $count = count($file_list); //размер масссива for ($i=0;$i<$count;$i++){ $files=$file_list[$i]; $filen=$files; $filen= encodestring($filen); // функция транслита }
тут я опять встретился с этой проблемой
11011-��.jpg вместо 11011-мб.jpg
на сколько я понимаю имена в win-1251 и надо $filen перегнать в utf-8
перепробовал iconv(), mb_convert_encoding() и convert_cyr_string() ничего не помогло.
Вообщем какие у кого идеи) Заранее благодарен.
|