[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: перевод из латиницы в кириллицу
Воитель
При разработке приложения, приходиться расчитывать и на дураков. я думаю мне это не одному знакомо :-) . в текстовое поле должна вводиться кириллица верхнего регистра(это сокращения подразделений фирмы) но подозреваю что некоторые будут вводить в нижнем(думаю это не важно для мysql) так же есть вариант что будут вводить латиницей. что делать в этом случае? тут видимо через регулярные выражения надо, у кого-нибудь есть готовый код или хотябы табли



Спустя 15 минут, 5 секунд (3.10.2009 - 19:17) twin написал(а):
Это наоборот, кирилицу на латиницу меняет, буквы поменяй просто.
Свернутый текст
PHP
<?php

    function translate
($str) 
    
{ 
                
    $arr 
= array(  
                
'а' => 'a', 
                
'б' => 'b', 
                
'в' => 'v', 
                
'г' => 'g', 
                
'д' => 'd', 
                
'е' => 'e', 
                
'ё' => 'jo', 
                
'ж' => 'zh', 
                
'з' => 'z', 
                
'и' => 'i', 
                
'й' => 'jj', 
                
'к' => 'k', 
                
'л' => 'l', 
                
'м' => 'm', 
                
'н' => 'n', 
                
'о' => 'o', 
                
'п' => 'p', 
                
'р' => 'r', 
                
'с' => 's', 
                
'т' => 't', 
                
'у' => 'u', 
                
'ф' => 'f', 
                
'х' => 'kh', 
                
'ц' => 'c', 
                
'ч' => 'ch', 
                
'ш' => 'sh', 
                
'щ' => 'shh', 
                
'ъ' => '"', 
                
'ы' => 'y', 
                
'ь' => "'", 
                
'э' => 'eh', 
                
'ю' => 'ju', 
                
'я' => 'ja'
                ); 
                
       return str_replace
(array_keys($arr), array_values($arr), mb_strtoupper($str,"utf-8"));
                  
     
}

Спустя 16 часов, 13 минут, 5 секунд (4.10.2009 - 11:31) Воитель написал(а):
Спасибо.
А можно поподробнее описать действие предпоследней строки.

Спустя 22 минуты, 51 секунда (4.10.2009 - 11:53) Воитель написал(а):
Функция выдаёт:
Call to undefined function: mb_strtoupper() in z:\home\melmak.ru\www\raspisanie\raspisanie.php on line 76

Попробовал заменить mb_strtoupper() на strtoupper()
-Функция не работает

Спустя 9 минут, 52 секунды (4.10.2009 - 12:03) twin написал(а):
Цитата
А можно поподробнее описать действие предпоследней строки.

PHP
return str_replace(array_keys($arr), array_values($arr), mb_strtoupper($str,"utf-8"));

Тут образуется два массива, один из ключей исходного, другой из значений (функции array_keys() и array_values()). Функция str_replace() заменяет значения первого на соответствующие значения второго. то есть ключ на значение исходного. А значит русские буквы на латинские. Ну а mb_strtoupper(), как ты понял, заменяет нижний регистр на верхний.
Цитата
Попробовал заменить mb_strtoupper() на strtoupper()
-Функция не работает

Кодировка скрипта какая?

Спустя 1 час, 37 минут, 24 секунды (4.10.2009 - 13:41) Michael написал(а):
Цитата (Воитель @ 3.10.2009 - 16:02)
но подозреваю что некоторые будут вводить в нижнем(думаю это не важно для мysql) так же есть вариант что будут вводить латиницей. что делать в этом случае?

JavaScriptами надо прежде всего бить в таком случае по рукам. mad.gif

Спустя 5 часов, 16 минут, 44 секунды (4.10.2009 - 18:57) Воитель написал(а):
С функциями разобрался спасибо, всё работает. А JS изхотя из особенностей проекта, использовать нельзя, всё свалилось на пхп.


_____________
Вечно учусь.
Быстрый ответ:

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