Проблема с ф-цией preg_match

smp

Новичок
preg_match ищет в строке совпадение с заданным шаблоном. Но в моём случае почему то не находит ничего. Вот код:

PHP:
$badWord = array("мыло", "почт", "майл", "mail", "@", "yandex", "ICQ", "аська", "контакт", ".ru", ".ру", ".com", ".ком", "телефон", "8-9", "+7", "+3", "7-9", "точка", "тчк");

  $regex = "/".implode("|", $badWord)."/i";

  if(preg_match($regex, $text))  return true; 
   else  return false;
Подскажите пож-та в чём может быть проблема?
 

Фанат

oncle terrible
Команда форума
во-первых, это не код, а огрызок. нет ни определения функции, ни вызова, ни тестового примера
во-вторых, регулярка здесь не нужна, имхо.
 

smp

Новичок
Этого "огрызка" достаточно вполне. Вместо имхо предложите вместо регулярки другой вариант :)
К примеру $text = "мама мыло раму"
 

Фанат

oncle terrible
Команда форума
во-первых, не надо спорить.
надо сделать, как велено.
если тебе самому лень писать тестовый скрипт, то здесь за тебя это точно никто делать не будет

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

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

smp

Новичок
дед, не стой ноги встал? имхо на весь свет в обиде ты )))
 

С.

Продвинутый новичок
Для того, чтобы регулярка работал, надо соблюдать синтаксис регулярных выражений.
 

Placido

Наблюдаю
Специальные символы (в частности точку и знак "плюс") в регулярном выражении нужно экранировать. Так будет работать:
PHP:
$badWord = array("мыло", "почт", "майл", "mail", "@", "yandex", "ICQ", "аська", "контакт", "\.ru", "\.ру", "\.com", "\.ком", "телефон", "8-9", "\+7", "\+3", "7-9", "точка", "тчк");
 

Фанат

oncle terrible
Команда форума
smp
Тебя мамка, наверное, так же воспитывает?
И ты точно так же не слушаешь, что она говорит?
А зря.
Когда тебя ругают, и говорят, как правильно - надо сразу пугаться, и делать, что говорят.
А ты только пугаешься.

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

Placido
И что - если заэкранировать точку, то сразу начнет находить мыло?
 

Placido

Наблюдаю
Фанат
Нет, точки - это частность, о них я упомянул в общем ("в частности", помните?). Но вот если не заэкранировать плюс, то будет ошибка в синтаксисе регулярки.
 

Фанат

oncle terrible
Команда форума
Помню-помню.
Вот и ещё один ламер будет теперь знать, что ошибку можно найти только с помощью доброго дяди на форуме. А самому это и невозможно, и не нужно.
 
Сверху