Регент
25.08.2009 - 11:41
Перешёл на utf8, preg_match() перестала обрабатывать русские символы. Использую её в конструкции вида
PHP |
$regexp = '/^[a-zA-Zа-яА-Я0-9_. ]*$/D'; if( preg_match($regexp,$_POST['content']) ) {
} else {
} |
в итоге присылаю данные типа content=Вася_Пупкин
Проверка не проходит...
страница сохранена в utf8, в заголовке стоит <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />, данные точно приходят(проверял выводя их в else)
В чём может быть затык?
Спустя 11 минут, 47 секунд (25.08.2009 - 10:53) Sylex написал(а):
для работы регулярных выражений в UTF-8 нужно использовать модификатор u
хотя регулярки все равно могут гнать
Спустя 8 минут, 44 секунды (25.08.2009 - 11:01) Sylex написал(а):
Спустя 23 минуты, 11 секунд (25.08.2009 - 11:25) twin написал(а):
Цитата |
хотя регулярки все равно могут гнать |
Не замечал... Есть подробности?
Спустя 19 часов, 36 минут, 45 секунд (26.08.2009 - 07:01) Sylex написал(а):
Цитата (twin @ 25.08.2009 - 14:25) |
Цитата | хотя регулярки все равно могут гнать |
Не замечал... Есть подробности?
|
ну, например, поиск слова \w в Win-кодировке идет нормально, тогда как в UTF-8 уже некорректно:
PHP |
<?php // скрипт в UTF-8 echo preg_match('/\w/u', 'в'); // выведет 0 |
Спустя 15 минут, 51 секунда (26.08.2009 - 07:17) twin написал(а):
Отож

Сеньк, не знал.
_____________