X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Транслитерация
yuriy_hb
yuriy_hb
Topic Starter сообщение 30.7.2010, 11:25; Ответить: yuriy_hb
Сообщение #1


Подскажите.
Загружаю файлы на сервер. Название файлов на крилице преобразую с пмощью транслитерации в латынь:

[PHP]function transliterate($st) {

$st = strtr($st,
"абвгдежзийклмнопрстуфыэФБВГДЕЖЗИЙКЛМНОПРСТУФЫЭ",
"abvgdegziyklmnoprstufieABVGDEGZIYKLMNOPRSTUFIE"
);
$st = strtr($st, array(
'е'=>"yo", 'х'=>"h", 'ц'=>"ts", 'ч'=>"ch", 'ш'=>"sh",
'щ'=>"shch", 'ъ'=>'', 'ь'=>'', 'ю'=>"yu", 'я'=>"ya",
'Ё'=>"Yo", 'Х'=>"H", 'Ц'=>"Ts", 'Ч'=>"Ch", 'Ш'=>"Sh", 'Щ'=>"Shch",
'Ъ'=>'', 'Ь'=>'', 'Ю'=>"Yu", 'Я'=>"Ya"
));
return $st;

}
[/PHP]

скрипт для загрузки файлов:
[PHP]$T = UpdateArrayFILES('userfile');//переформатируем массив, чтоб было удобно
if(is_array($T)){
foreach($T as $file){
if(!$file['error']){
$destination_path = "files/";
$fileName = transliterate(basename($file['name'])); // преобразовываем транслитератором имя файла
$target_path = $destination_path . $fileName;
move_uploaded_file($file['tmp_name'], $target_path);
}
}
}[/PHP]

файл загрузился, но вместо (скажем имени файла "Прайс цен.doc" транслитератор преобразовал в непонятное название IMIKaZeZDZlZDZsZl.doc.

Если чисто передать у функцию echo transliterate("Прайс.doc") - то все нормально - получаем price.doc
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mulder_hb
Mulder_hb
сообщение 30.7.2010, 11:54; Ответить: Mulder_hb
Сообщение #2


А вы проверьте, что у вас на входе функции. После
[PHP]foreach($T as $file){[/PHP]
добавьте
[PHP]echo $file . "<br />";[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 31.7.2010, 8:17; Ответить: Apay
Сообщение #3


проверьте кодировки, при надобности преобразуйте при помощи mb_convert_encoding или iconv
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
SOKOJI
SOKOJI
сообщение 31.7.2010, 12:42; Ответить: SOKOJI
Сообщение #4


(Apay @ 31.7.2010, 11:17) *
проверьте кодировки, при надобности преобразуйте при помощи mb_convert_encoding или iconv


Для mb_convert_encoding нужно библиотеку подключать отдельную. Но результат того стоит. Функции отлично справляются со строками UTF-8.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 19.4.2024, 8:53
Дизайн