Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Проблема: кодировка utf-8 и регулярные выражения (Злой программер)
Author Message
Злой программер
Guest





Карма: 388
   поощрить/наказать


PostPosted: Fri Apr 28, 2006 9:12 am (написано за 10 минут 20 секунд)
   Post subject: Проблема: кодировка utf-8 и регулярные выражения
Reply with quote

Уважаемые участники форума, у меня возникла проблема с русским текстом (в кодировке utf8) и обработкой его (текста) регулярными выражениями.
Моя конфигурация:
PHP 5.1.2
Apache 1.3.33
Все скрипты в кодировке utf-8
Cуть проблемы: Есть форма
Code (html): скопировать код в буфер обмена
<form (december.com/html/4/element/form.html) action="index.php" method="post"> (december.com/html/4/element/.html)
<input (december.com/html/4/element/input.html) type="text" name="text"> (december.com/html/4/element/.html)
<input (december.com/html/4/element/input.html) type="submit" value="Дальше"> (december.com/html/4/element/.html)
</form>
Есть скрипт, обработки этой формы:
Code (php): скопировать код в буфер обмена
<?php
$var = (ereg (www.php.net/ereg)("^[a-zA-Zа-яА-яёЁ0-9 \.]+$", $_POST['text'])) ? true : false;
?>
Когда я ввожу в форме латиницу и цифры - всё в полном порядке, но вот когда в форме появляется русский текст, регулярные выражения ни как не хотят работать.
Подскажите, пожалуйста, решение данной проблемы. Или если лениво писать ответ, напрвьте ссылкой на какой-нидь мануал.
Заранее очень благодарен...
З.Ы. Использование другой кодировки исключено.
Back to top
y0prst
Участник форума



Joined: 20 May 2004
Posts: 101
Карма: 9
   поощрить/наказать

Location: Вологда

PostPosted: Fri Apr 28, 2006 10:10 am (спустя 58 минут; написано за 1 минуту 19 секунд)
   Post subject:
Reply with quote

Злой программер
А PCRE-функции не пробовали?
Если верить этому источнику - www.controlstyle.ru/articles/programming/text/phputf8c1/, модификатор /u в pcre корректно работает с utf-8.
Back to top
View user's profile Send private message
Злой программер
Заглянувший



Joined: 28 Apr 2006
Posts: 1
Карма: 0
   поощрить/наказать

Location: Питер

PostPosted: Fri Apr 28, 2006 11:16 am (спустя 1 час 5 минут; написано за 2 минуты 35 секунд)
   Post subject:
Reply with quote

Спасибо огромное!!! Разобрался
Поменял на
Code (php): скопировать код в буфер обмена
preg_match (www.php.net/preg_match)("/^[a-z-0-9]+$/iu", $text);
и всё заработало.
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 412
   поощрить/наказать


PostPosted: Sat Apr 29, 2006 10:37 am (спустя 23 часа 21 минуту; написано за 1 минуту 31 секунду)
   Post subject:
Reply with quote

Можно еще включить и настроить расширение mbstring, тогда ereg-функции автоматом начнут работать с UTF8 (также как substr, strlen и др.). Правда, все равно останется куча функций, которые с UTF8 не дружат без дополнительных исправлений (те же PCRE, в коорых надо /u указывать; умолчательным его вроде как нельзя поставить, что печалит).
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML