Регулярные выражения и русские символы

buster-coder

Новичок
Регулярные выражения и русские символы

Подскажите пожалуйста, где почитать о том, как регулярные выражения в PHP работают с русскими символами. Вроде выражения /А-Яа-я/, работают, но возникают проблемы с кодировками koi8r, cp1251. Как они будут работать на других хостах?
Где почитать?
 

Nick Mitin

Новичок
приводишь свой проект к одной кодировке, какой, решай сам.

и все что в него попадает конвертируешь в свою через

iconv или связку mb_detect_encoding/mb_convert_encoding.

Алес!
 

buster-coder

Новичок
проще выражение написать в разных кодировках, чем текст проверять и конвертить.....
А как вообще работа в регулярках с русскими буквами? Проблем не возникнет никогда? ПХП по-умолчанию поддерживает русские буквы?
 

buster-coder

Новичок
Автор оригинала: Nick Mitin
*упал под стол*

Учить матчасть! Срочно!
ты почитай, что я спрашивал, а не падай под стол... Где мне читать про работу ПХП с русскими буквами?? Если не знаешь, то лучше не пиши ничего!
 

Nick Mitin

Новичок
buster-coder

Налицо абстракция от реальности.

Если ты не понимаешь сути понятия "кодировка" (которые ты называешь русскими буквами) и как в принципе организуется работа с ними, то при чем тут PHP? PHP работает с китайскими арабскими туркменскими буквами одинаково. По их цифровым кодам. :) Для него нет понятия буква, а есть понятие цепочка данных.

Если ты не этого знаешь, не пиши ничего (читай: не задавай глупых вопросов).
 

TheBattle

Новичок
Что за бред... в смысле /a-Aя-Я/ - вообще недопустимо с любой точки зрения.

Во всей литературе используют 16-ричный формат, вроде
/x09-xFF/,
то есть тебе нужны символы русской кодировки, в таблице под номерами 128-255, переводи этот диапазон в 16-ричное число и пиши в формате xNN, где NN-это...
 

Andreika

"PHP for nubies" reader
TheBattle
пасиб за совет. (в очередной, пятый по счету раз, ушел править мой единственный и неповторимый скрипт)

Что за бред... в смысле /a-Aя-Я/ - вообще недопустимо с любой точки зрения.

Во всей литературе используют 16-ричный формат, вроде
/x09-xFF/,
то есть тебе нужны символы русской кодировки, в таблице под номерами 128-255, переводи этот диапазон в 16-ричное число и пиши в формате xNN, где NN-это...
 

TheBattle

Новичок
пасиб за совет. (в очередной, пятый по счету раз, ушел править мой единственный и неповторимый скрипт)
Да не за что. Помнится, я сам, когда делал свой парсинг цитат (то бишь BBcode свою версию), так вообще пару строк отлаживал по полдня. Эти регулярные выражения, как говорится, "прохавать надо", потому что иногда без них никак.
 

xpgeek

Новичок
Какие проблемы
PHP:
set_locale('ru_RU.WINDOWS-1251'); //.KOI8-R
и будут тебе русские )

Использовать примерно, так:
PHP:
$bolMatch = preg_match("/^[[:alpha:]]+$/", $strData);
И никаких извращений!
 

amorfis

я стараюсь
Автор оригинала: xpgeek
Какие проблемы
PHP:
set_locale('ru_RU.WINDOWS-1251'); //.KOI8-R
и будут тебе русские )

Использовать примерно, так:
PHP:
$bolMatch = preg_match("/^[[:alpha:]]+$/", $strData);
И никаких извращений!
Правда кое-где не будет работать. А если пишется для одного проекта, то лучше конечно использовать setlocale().
 

Andreika

"PHP for nubies" reader
amorfis
а можно узнать (в целях повышения образованности) в каком кое-где не будет работать setlocale с пачкой стандартных локалей в параметрах?
 

amorfis

я стараюсь
Andreika

Это редкий случай. Но однажды мне такая пачка не помогла.
 
Сверху