- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Подскажите пожалуйста такую функцию.
Стандартная strpos не подходит потому что она возвращает TRUE для слова "кофе" и строки "кофеин это яд", а надо что бы было FALSE.
Может кто в регулярных выражениях разбирается, подскажите.
Спасибо.
А если строку разбить на подстроки с помощью explode. А затем в цикле прогнать массив на сравнение с искомым словом? :)
Хотя конечно думаю есть вариант попроще, и специалисты сейчас подскажут:)
Подскажите пожалуйста такую функцию.
Пишите в личку помогу.
Так сильно медленно.
И уже кстати нашлось решение:
preg_match('~\bкофе\b~i','кофеин это яд')
Всем спасибо кто откликнулся на зов о помощи :)
Массивом так:
$a=explode(' ',$stroka); // заменить все небуквы на пробелы и удалить двойные пробелы
if(in_array('кофе',$a)) echo 'yes';
а регулярным выражением, лучше так:
preg_match('/(^|[\W])кофе([\W-]|$)/i',$stroka);
или так, если дефис не подходит preg_match('/(^|[\W-])кофе([\W-]|$)/i',$stroka); - учтены положения в начале и конце строки
Подскажите пожалуйста такую функцию.
Стандартная strpos не подходит потому что она возвращает TRUE для слова "кофе" и строки "кофеин это яд", а надо что бы было FALSE.
Может кто в регулярных выражениях разбирается, подскажите.
Спасибо.
на самом деле стрпос использовать корректнее, чем подключать сюда регвыражения.
просто функция стрпос может возвращать не только позицию в строке, а результат нахождения.
кроме того, неоходимо корректно результат проверить. просто так в ИФ подставить от балды нельзя.
рабочий пример:
в данном случае строка встречается в позиции 0, что при подстановке в if () даёт неуспешный результат, так как ноль интерпретируется как false.
необходимо проверять успешность результата поиска, сравнивая с булевым значением, и соответствием типов (!==)
Sveta Prokopeva,
mustafa,
Не понял, а зачем \ перед пробелом?
Sveta Prokopeva,
preg_match("/[^а-я]*$key[^а-я]*/isU", $text);
Что-то вроде, чтобы букв рядом не было, а всякие пробелы, запятые и т.п. могли быть.
на самом деле стрпос использовать корректнее, чем подключать сюда регвыражения.
Абсолютно не согласен :)
mustafa, Segey, вариант, придуманный Светой - самый правильный. \b (т.е. word boundary) специально для того и делали ;)
Коля Дубр,
Ну в общем-то согласен, можно заменить на "символ образ слово" или как так, это у мну память дырявая :)
Только синтаксис у нее какой-то непривычный, я обычно не так пишу...
Абсолютно не согласен
Упс... мой пост можно игнорировать. всё совершенно наоборот как-то прочитал :)
Действительно, если нужно целые слова, то стрпос не пойдёт.