[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не работает транслит
Extrimer
Очень странная ошибка, не могу врубиться уже несколько часов пытаюсь разобраться! Подскажите пожалуйста.

function trans($text) {
$trans = array("а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d","е"=>"e", "ё"=>"yo","ж"=>"j","з"=>"z","и"=>"i","й"=>"i","к"=>"k","л"=>"l", "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r","с"=>"s","т"=>"t", "у"=>"y","ф"=>"f","х"=>"h","ц"=>"c","ч"=>"ch", "ш"=>"sh","щ"=>"sh","ы"=>"i","э"=>"e","ю"=>"u","я"=>"ya",
"А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D","Е"=>"E", "Ё"=>"Yo","Ж"=>"J","З"=>"Z","И"=>"I","Й"=>"I","К"=>"K", "Л"=>"L","М"=>"M","Н"=>"N","О"=>"O","П"=>"P", "Р"=>"R","С"=>"S","Т"=>"T","У"=>"Y","Ф"=>"F", "Х"=>"H","Ц"=>"C","Ч"=>"Ch","Ш"=>"Sh","Щ"=>"Sh", "Ы"=>"I","Э"=>"E","Ю"=>"U","Я"=>"Ya",
"ь"=>"","Ь"=>"","ъ"=>"","Ъ"=>"");
return strtr($text, $trans);
}



/*Код должен преобразовать русское название картинки в его транслит*/

$dir = opendir ("./img"); // открываем текущую директорию
while ($file = readdir ($dir)) {
// В условии if обрабатываются все изображения с расширением .jpg
if (strpos($file, ".jpg")>0) {

if (strrpos($file,".")>0) {
$file_name= substr($file, 0, strrpos($file,"."));

rename("img/".$file, "img/".trans($file_name).".jpg");
}
}
}

closedir($dir);

Код категорически отказывается транслировать переменную $file_name, а любой другой текст переводит. вот только почему??




Спустя 14 минут, 34 секунды (8.11.2011 - 23:13) walerus написал(а):
У меня все отрабатывает нормально, что скрипт отвечает ?, кодировки одинаковые, ошибки высыпаются ??, больше инфы, больше...

Спустя 1 минута, 1 секунда (8.11.2011 - 23:14) Winston написал(а):
В какой кодировке файл ?

Спустя 11 минут, 50 секунд (8.11.2011 - 23:26) Extrimer написал(а):
скрипт ошибку не выдает просто оставляется русские символы, не преобразует в транслит. а любой другой текст преобразует.
кодировка utf8 без BOM.

Спустя 5 минут, 25 секунд (8.11.2011 - 23:31) Winston написал(а):
Попробуй в верху файла прописать кодировку
header("Content-Type: text/html; charset=utf-8");

Спустя 1 час, 29 секунд (9.11.2011 - 00:32) Extrimer написал(а):
не помогло. так не в кодировки дело, потому что если переписать содержимое переменой $file_name, перед тем как использовать её в функции trans, она транслирует!!


$dir = opendir ("./img"); // открываем текущую директорию
while ($file = readdir ($dir)) {
// В условии if обрабатываются все изображения с расширением .jpg
if (strpos($file, ".jpg")>0) {

if (strrpos($file,".")>0) {
$file_name= substr($file, 0, strrpos($file,"."));

rename("img/".$file, "img/".trans($file_name).".jpg");


echo ($file_name); // в переменой есть значение!
echo(trans($file_name)); // не транслирует! но должен
$file_name = "картинка"; // меняем значение переменой
echo(trans($file_name)); // транслирует
}
}
}

closedir($dir);
?>

Спустя 2 дня, 16 часов, 48 минут, 44 секунды (11.11.2011 - 17:20) Extrimer написал(а):
Да не уже ли никто не знает? хелп срочно нужно!!

Спустя 1 час, 30 минут, 50 секунд (11.11.2011 - 18:51) twin написал(а):
С этого места
echo(trans($file_name)); // не транслирует! но должен

поподробнее.

Спустя 2 часа, 55 минут, 9 секунд (11.11.2011 - 21:46) Extrimer написал(а):
Все разобрался наконецто. вот так работает
trans(winToUtf8($file_name))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.