Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заставить регулярные выражения понимать кириллицу 
:(
    Опции темы
Nope
Дата 13.7.2007, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 3.7.2006

Репутация: нет
Всего: нет



Суть проблемы:

Код

<?
preg_match("/(\w*)/","hello",$pockets);
print_r($pockets);
?>


выдает следущее:
Код

Array ( [0] => hello [1] => hello ) 


если натравить подобное на кириллицу
Код

<?
preg_match("/(\w*)/","привет",$pockets);
print_r($pockets);
?>


выдает такое:
Код

Array ( [0] => [1] => ) 


подскажите, что и как нужно изменить в настройках хосинг-сервера, так чтобы второй пример работал аналогично первому.

Заранее спасибо.
PM MAIL   Вверх
FlameTH
Дата 13.7.2007, 17:28 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 13.7.2007

Репутация: нет
Всего: нет



Попробуй установить локаль на рускую.
PM MAIL ICQ   Вверх
mishaSL
Дата 13.7.2007, 17:30 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 9
Всего: 54



Необходимо настроить локаль. Для *nix это будет выглядеть так:
Код

setlocale(LC_ALL, "ru_RU.CP1251");

Это если используете кодировку cp1251. Описание подробнее здесь


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Nope
Дата 13.7.2007, 17:36 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 3.7.2006

Репутация: нет
Всего: нет



Про setlocale мысля пришла сразу же, вопрос вот в чем: можно ли глобально, и если да то как, изменить настройки php так, чтобы в каждом скрипте на пришлось писать setlocale(LC_ALL, "ru_RU.CP1251");
PM MAIL   Вверх
GZep
Дата 13.7.2007, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: нет
Всего: 32



ну, если вы имеет доступ к php.ini. Или воткнуть эту строчку в файл, который подключается в каждом скрипте (например конфиг файл)


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
ilyalyu
Дата 13.7.2007, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 25.10.2006

Репутация: нет
Всего: нет



Думаю \w с кирилицей работать не будет. А почему не написать вместо этого [a-zA-Zа-яА-Я] ?
PM MAIL   Вверх
mishaSL
Дата 14.7.2007, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 9
Всего: 54



Цитата(ilyalyu @  13.7.2007,  23:13 Найти цитируемый пост)
Думаю \w с кирилицей работать не будет

Это Вы не правильно думаете. Отлично работает с кириллицей, главное правильно указать локаль.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Nope
Дата 16.7.2007, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 3.7.2006

Репутация: нет
Всего: нет



GZep, можно про настройки php.ini по этому вопросу немножко поподробнее?
PM MAIL   Вверх
mclight
Дата 16.7.2007, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 6.7.2005
Где: Baku, Azerbaijan

Репутация: 1
Всего: 2



UTF-8
--------------------
Как я решал подводные камни Cakephp и не только
PM WWW ICQ MSN   Вверх
w1zard350
Дата 13.8.2010, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 4.5.2009

Репутация: нет
Всего: нет



у меня setlocale() не заработала. В чем проблема? Который час пытаюсь понять/разобраться, все впустую.  Что можно еще сделать? Какие настройки изменить? Все что угодно, только бы сдвинуться с места..
PM MAIL   Вверх
bars80080
Дата 13.8.2010, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



покажите свою регулярку
PM MAIL WWW   Вверх
Photon
Дата 15.8.2010, 08:40 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Злобный программер
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 27.2.2009
Где: Таганрог

Репутация: нет
Всего: 12



Использовать UTF-8 и модификатор u в регулярке..
Код

preg_match("/(\w*)/u","привет",$pockets);


Это сообщение отредактировал(а) Photon - 15.8.2010, 08:41


--------------------
With best regards..
PM MAIL ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0975 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.