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
Форумы портала PHP.SU :: Версия для печати :: preg_grep не работает регистронезависимый поиск
Форумы портала PHP.SU » PHP » Регулярные выражения » preg_grep не работает регистронезависимый поиск

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

1. NeverDie - 30 Июля, 2012 - 18:26:18 - перейти к сообщению
Здравствуйте! У меня задача узнать номер предложения, содержащее какое-либо слово. Вот пример кода:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $string = 'Ритмичный стук колес, приглушенный свет, горячий чай в подстаканниках… Путешествие в поезде ― это так душевно и романтично. Дорога всегда дает надежду, что впереди только лучшее, наверное, поэтому мы относимся к поездам с таким трепетом. Теперь, чтобы ощутить эту необыкновенную атмосферу, необязательно покупать железнодорожный билет.';
  3. $word = 'покупать';
  4. $m = preg_grep('~'.preg_quote($word,'~').'~i', preg_split('~[\.!?]~',$string));
  5.  

В данном примере код работает как нужно. Но если вместо "покупать" написать "Покупать", или "пОкУпАтЬ", то поиск перестает работать. Помогите, пожалуйста. Я перепробовал кучу вариантов, но так и не разобрался, почему так происходит. В примере с английским
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $string = 'The quick brown fox jumps over the lazy dog. PHP is the website scripting language of choice.';
  3. $word = 'php';
  4. $m = preg_grep('~'.preg_quote($word,'~').'~i',preg_split('~[\.!?]~',$string));
  5. var_dump($m);
  6.  

Все работает как надо...
2. LIME - 30 Июля, 2012 - 18:46:35 - перейти к сообщению
setlocale
3. Мелкий - 30 Июля, 2012 - 18:51:53 - перейти к сообщению
Юникод? Добавьте модификатор u.
4. NeverDie - 30 Июля, 2012 - 22:21:10 - перейти к сообщению
Спасибо, модификатор помог!

 

Powered by ExBB FM 1.0 RC1