Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Найти совпадения

7.3K
05 мая 2011 года
shureg
67 / / 29.05.2010
Доброго всем утра / дня / вечера

есть некий список совпадений (массив)

 
Код:
$palletn = array("pidar","suka","loh","hyi");


И есть некая переменная:

 
Код:
$variable = "Privet loh, kak dela??";


мне нужно прогнать переменную $variable, на соотвествие шаблону $palletn
и если есть совпадение, хоть по одному слову - выдать какойто текст!

как реализовать???

тоесть совпадение по 1 слову проблем не возникает :), а вот чтобы так шаблоном прописать через запятую - уже не получается :(
13
06 мая 2011 года
RussianSpy
3.0K / / 04.07.2006
Разбить на части и проверять в массиве наличие каждого слова... метод тупой - первое что пришло в голову после 12 часового рабочего дня
278
06 мая 2011 года
Alexander92
1.1K / / 04.08.2008
 
Код:
<?php
$pattern = array('pidar', 'suka', 'loh', 'hyi');
$variable = "Privet loh, kak dela??";
$words = preg_split('/[ ,\.!?]/', strtolower($variable));
$intersection = array_intersect($words, $pattern);
if (count($intersection) > 0)
  echo 'Warning! Кто-то некультурный рядом!';
?>
13
06 мая 2011 года
RussianSpy
3.0K / / 04.07.2006
Интересно что будет быстрее работать - этот вариант или со строковыми функциями...
7.3K
06 мая 2011 года
shureg
67 / / 29.05.2010
Alexander92 Спасибо. Замерил скорость выполнения, меня устраивает :)
71K
07 мая 2011 года
Technic
1 / / 07.05.2011
Можно и в одну строку:
 
Код:
if (preg_match('/pidar|suka|loh|hyi/', $variable)) print "есть совпадение";


Если входящие данные обязательно в массиве - можно их заджойнить в regexp
278
07 мая 2011 года
Alexander92
1.1K / / 04.08.2008
Насколько я понимаю, такой вариант хуже, поскольку он может дать ложные срабатывания. Например:

 
Код:
$variable = "Vasya hodit v lohmot'yah.";


Формально подстрока "loh" сюда входит, но не является словом.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог