[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Перешёл на utf8
Регент
Перешёл на 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 написал(а):
Отож biggrin.gif Сеньк, не знал.


_____________
Быстрый ответ:

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