Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Регулярные выражения

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Настрйока кодировки в регулярных выражениях
unnomen
Отправлено: 19 Марта, 2015 - 18:41:10
Post Id



Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Февр. 2015  


Помог: 0 раз(а)




Проблема такая:

При написании регулярных выражений PHP не выводит русский текст.
Вот пример:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $pattern = '/[0-9]+.[а-я]+/';
  3. $subject = '21 человек';
  4. preg_match($pattern, $subject, $m);

выдаёт
CODE (html):
скопировать код в буфер обмена
  1. array(1) { [0]=> string(4) "21 С" }

Если использую то же самое, только на латинице
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $pattern = '/[0-9]+.[a-z]+/';
  3. $subject = '21 people';
  4. preg_match($pattern, $subject, $m);

то получаю на выходе правильный ответ:
CODE (html):
скопировать код в буфер обмена
  1. array(1) { [0]=> string(9) "21 people" }


Как можно настроить работу скрипта на русский язык? Желательно использовать кодировку cp1251, т.к. в будущем нужно будет иметь связь с БД, там данные в этой кодировке хранятся.
 
 Top
unnomen
Отправлено: 19 Марта, 2015 - 19:08:06
Post Id



Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Февр. 2015  


Помог: 0 раз(а)




Проблему решил изменением кодировки самого документа php на cp1251. По дефолту почему-то стояла кодировка utf-8.
Прикреплено изображение (Нажмите для увеличения)
1.jpg

(Отредактировано автором: 19 Марта, 2015 - 19:08:38)

 
 Top
unnomen
Отправлено: 19 Марта, 2015 - 21:32:18
Post Id



Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Февр. 2015  


Помог: 0 раз(а)




Ещё как вариант, подошёл модификатор u
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. header('Content-Type: text/html; charset=utf-8');
  3. $pattern = '/[0-9]+.[а-я]+/u';
  4. $subject = '21 человек';
  5. preg_match($pattern, $subject, $m);
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Кодировки и все смежное »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB