Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как присвоить переменной рядом стоящие слова? PHP

Вася Б Мастер (1490), на голосовании 4 года назад
Например есть текст: Собака бежит прыгая от радости
$text="Собака бежит прыгая от радости ";
Ключевое слово "бежит" - $w="бежит";

Пишем что то вроде
preg_match ("/(?:^|\s)($w)/iu",$text)
чтобы нашло слово бежит....

И надо чтобы вывело "Собака бежит прыгая"
т. е. нужно чтобы вывело не только искомое слово, но и одно предстоящее перед ним и одно после. И все остальное удалить.

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

Мое соображение:

Что то типа такого:
$text=preg_replace('#'.$w.'#ius','metka'.$w.'metka', $text;

На выхлопе получим
Собака metkaбежитmetka прыгая от радости

Потом код которого еще не придумал который заменяет первый пробел от или до метки на скобку
Типа иф "metka " то заменяем " " который после на ") " а если " metka" то заменяем " " который до на " ("

В итоге должен получить
(Собака metkaбежитmetka прыгая) от радости

Потом удаляю str_replace('metka', '', $text)

И удаляю все что не внутри скобки.

Может есть другой вариант?
Голосование за лучший ответ
Oleg D. Искусственный Интеллект (110745) 4 года назад
не усложняйте.
разбейте текст на массив по словам. найдите индекс нужного слова. возьмите элементы до и после найденного. готово.
Вася БМастер (1490) 4 года назад
Спасибо, это хорошая идея
Похожие вопросы