Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Кириллица или латиница


Автор: supercelt 30.5.2008, 11:54
Есть $bukva. Её значение может быть например таким: "G" или таким: "Ф". А есть фенкция которая возвращает тру, если буква - латиница или наоборот, тру, если кириллица???

Автор: krundetz 30.5.2008, 12:02
Два массива. Первый с латинскими буквами второй с русскими. Проверяете вхождение аргумента функции в массивы. Далее думаю ясно.
Цитата

если буква - латиница или наоборот, тру, если кириллица???

Для двух языков логика верная, а что вы будете делать когда языков больше?
ИМХО лучше возврашать идентификатор языка. Например ru для русского en для англиского, false когда ни то ни другое.

Автор: supercelt 30.5.2008, 12:06
Ну так мне всё-равно. Главное исключить что-нибудь одно, потому что языков всего 2 будет и больше не предвидется)

Автор: skyboy 30.5.2008, 12:33
Цитата(krundetz @  30.5.2008,  11:02 Найти цитируемый пост)
Для двух языков логика верная, а что вы будете делать когда языков больше?

а что делать, если буква не в той кодировке, что ожидается? 

Автор: supercelt 30.5.2008, 13:47
Ну можно сначала проверить кодировку и принудительно её задать. Но всё же, неужели у столь мощного языка нет такой простой ф-ии или метода???

Автор: krundetz 30.5.2008, 13:57
Цитата(supercelt @ 30.5.2008,  13:47)
неужели у столь мощного языка нет такой простой ф-ии или метода???

Во всех языках такой функционал реализуется в дополнительных библиотеках или самим программистом. Может в какой либо библиотеке PHP и реализовано. Лично я не встречал.

supercelt если вы видели подобные функции в других языках поделитесь очень интересно.

Автор: supercelt 30.5.2008, 14:15
krundetz, если встречу, то сообщу, или сам на крайняк напишу

Автор: webevt 30.5.2008, 15:10
Для английского:
Код

preg_match( "/^[a-z]+$/i" ,  $str );


Для русского:
Код

preg_match( "/^[а-я]+$/i" ,  $str );


Не подходит?

Автор: supercelt 3.6.2008, 10:25
webevt, да, спасибо, работает

Автор: MoLeX 3.6.2008, 11:47

M
MoLeX
Если вопрос решен, помечайте тему соответствующим образом

Автор: Feldmarschall 3.6.2008, 12:49
Рег будет работать только при настроенной локали.
Учитывая, что надо проверять, скорее всего, не букву, а строку, решение получается очень, очень "элегантным"

О том, что русский текст модет быть в куче различных кодировок, не вспомнил никто
Ну, а про то, что у букв есть коды символов, которые суть числа - и подавно, похоже, никто не знает...

Автор: skyboy 3.6.2008, 13:02
Цитата(supercelt @  30.5.2008,  12:47 Найти цитируемый пост)
Ну можно сначала проверить кодировку

как? а если там, скажем, на польском строка? будешь проверять слова по словарю?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)