Определить, что символ - буква алфавита.

Alexi

Новичок
Определить, что символ - буква алфавита.

Здравствуйте.

Парсю xml, получаю строку. Надо определить - является ли первый символ данной строки буквой русского или латинского алфавита.
xml файл в кодировке UTF-8.
Кто-нибудь может подкинуть алгоритм?

Я долго боролся с тем, что если сделать substr, то всё было в крякозябрах. При mb_substr всё ок.
Вот мой код, но он не отрабатывает, почему - не могу никак понят.
PHP:
$rus_chars = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
$lat_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

$char = mb_strtoupper(mb_substr($album_name, 0, 1, "UTF-8"));

if ( mb_strlen(mb_strstr($rus_chars, $char, false, "UTF-8")) == 0 ) // если нет в русском...
{
	if (mb_strlen(mb_strstr($lat_chars, $char, false, "UTF-8")) == 0) // ищем в латинском
	      // тут понимаем, что это не буква, а например цифра или что-то ещё
}
Объясните пожалуйста, почему так?
 

Активист

Активист
Команда форума
fixxxer
> первый символ данной строки буквой русского
> или латинского
> алфавита

То.

preg_match("/^[a-zа-яA-ZА-ЯёЁ]/u", $string);
 

dimagolov

Новичок
Alexi, значит у тебя нифига не UTF-8 в $album_name и поэтому и не работал твой код :)
подставь тестовый текст в сам файл и убедись, что он в UTF-8 сохранен
 

Активист

Активист
Команда форума
fixxxer
Не факт ))

-~{}~ 03.02.09 22:42:

Alexi
Не ладно cp1251 с koi8-r перепутать, но однобайтную с двубайтной кодировкой - это талант ))
 
Сверху