Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2009, 15:15   #1
mo4islona
Новичок
Джуниор
 
Регистрация: 07.06.2009
Сообщений: 1
По умолчанию Проблема с preg_match_all и preg_split

PHP код:
$search ='ццedasw ваываыа dfsdfsf 213123';
setlocale(LC_ALL,"ru_RU.UTF-8");
preg_match_all("/\b([_0-9A-Za-zА-Яа-яЁё]+)\b/",$search,$words);
$words2 preg_split("/\b([_0-9A-Za-zА-Яа-яЁё]+)\b/",$search);
print_r($words);
print_r($words2); 
на выходе получаю

Цитата:
Array ( [0] => Array ( [0] => edasw [1] => dfsdfsf [2] => 213123 ) [1] => Array ( [0] => edasw [1] => dfsdfsf [2] => 213123 ) )

Array ( [0] => цц [1] => ваываыа [2] => [3] => )
то есть preg_split улавливает только русские буквы а preg_match_all наоборот.в чем проблема?
mo4islona вне форума Ответить с цитированием
Старый 09.06.2009, 17:03   #2
cronfy
Пользователь
 
Регистрация: 09.10.2008
Сообщений: 92
По умолчанию

1. С utf-8 нужно использовать модификатор u.

2. \b всё равно не будет работать. Рекомендую вдумчиво прочитать http://pcre.org/pcre.txt, особенно всё, что касается UTF-8. Случай с \b описан в «General comments about UTF-8 mode», пункт 6.
SPRINTHOST.RU — вот, что я люблю ;-)
cronfy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37