Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
 
Риназ
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 454
#1

Как найти слово через цикл? - PHP

15.05.2018, 16:32. Просмотров 620. Ответов 44
Метки нет (Все метки)

Всем привет! Можно ли найти слово таким образом:
Например: Есть текст: Привет как дела? У меня хорошо, а у тебя как?
И слово: как
В данном случае в обеих предложениях есть слово как(т.е. всего 2).
Можно ли сделать условие, если их больше 1, то начать цикл, который берет первое слово с текста и ставит после слова "как". Если такое нету, то берет второе слово и т.д, пока не получится "как дела"?
Т.е. должно получится так: Как Привет(нет), как как(нет), как дела(есть).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2018, 16:32
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как найти слово через цикл? (PHP):

Как найти слово в тексте полученный через file_get_contents?
Всем привет! Есть сайт с большим кол-вом слов(не только слова, есть и ссылки и...

Как сделать цикл для того, чтобы достать лишь 1 слово?
Всем привет! Есть текст. Из этого текста я достаю 1 предложение, потом разбиваю...

Как найти слово в тексте без учета регистра?
Всем привет! Как найти слово в тексте без учета регистра? Пробовал так: <?...

Выводит div через цикл так, как не нужно
Всем привет. Впервые сталкиваюсь с созданием сайта, точнее его...

Как передать выбранное слово через FORM
Это кусок из выпадающего списка Каким образом можно передать слово Чёрный...

Как найти ключевое слово и вывести 5 строк от слова вниз
Как найти ключевое слово и вывести 5 строк от слова вниз? Есть файл с...

44
worldown
163 / 161 / 100
Регистрация: 22.06.2009
Сообщений: 475
17.05.2018, 12:07 #21
sasha0012, https://metanit.com/web/php/3.1.php
PHP
1
2
$find  = "раз два три четыре пять"; //переменная принимающая из формы слова для поиска
$text = "я думаю часа два два будет два идти три дождь потом три часа светить солнце"; // переменная принимающая из формы предложение в котором идет поиск
0
Риназ
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 454
17.05.2018, 16:43  [ТС] #22
worldown, тогда другой вопрос. А где предложение, который ввел пользователь(Не слова, а предложение)?
Цитата Сообщение от Риназ Посмотреть сообщение
Есть 2 текстовых поля. На первое поле пользователь вводит слова(любые)
раз два три четыре пять
, а на второе предложение(любое)
Сегодня в четыре часа утра показывали кино
0
worldown
163 / 161 / 100
Регистрация: 22.06.2009
Сообщений: 475
17.05.2018, 18:52 #23
Риназ, я же выше все подписал, куда и что, и уроки на формы дал. Вы php\html знаете ?
0
Риназ
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 454
17.05.2018, 19:12  [ТС] #24
Цитата Сообщение от worldown Посмотреть сообщение
я же выше все подписал
Там же только 2 строки. А с моим текстом должно быть 3 или вы как-то по другому сделали?
1) Слова пользователя
2) Предложение пользователя
3) Мои слова
0
worldown
163 / 161 / 100
Регистрация: 22.06.2009
Сообщений: 475
17.05.2018, 23:53 #25
Риназ, 39 строка, найденные слова хранятся в массиве:
PHP
1
$findArr
0
Риназ
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 454
18.05.2018, 07:12  [ТС] #26
worldown, Нет, кажется вы меня не поняли. Я знаю, что слова хранятся в массиве. Данный код, который вы написали выше, он находит слова только с предложения:
я думаю часа два два будет два идти три дождь потом...
Ну это ладно, вместо предложения можно подключить мой текст. А если найденных слов будет больше 1, то надо по очереди поставить слова с предложения, который ввёл пользователь(не с моего текста, а с предложения пользователя), пока не получим нужный набор слов.
0
worldown
163 / 161 / 100
Регистрация: 22.06.2009
Сообщений: 475
18.05.2018, 10:23 #27
Риназ, вас очень тяжело понять. Посмотрите как излогают задачи:
Кликните здесь для просмотра всего текста
0
santaatnas
0 / 6 / 2
Регистрация: 10.04.2016
Сообщений: 65
18.05.2018, 10:47 #28
prey_match, классная функция)) православная, вам должна помочь))
0
Риназ
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 454
19.05.2018, 08:02  [ТС] #29
worldown, сделал в виде рисунка. Я уже не знаю как объяснять))
Как найти слово через цикл?
0
sasha0012
337 / 143 / 105
Регистрация: 21.06.2012
Сообщений: 660
19.05.2018, 11:59 #30
В последнем "слайде", что означает совпадений не найдено? Я так понимаю на это утверждение как-то влияет первый поиск? То есть если мы нашли "три часа" то со вторым словом обязательное совпадение только со словом "часа"? Иначе почему не подходит совпадение "два два"?
0
Риназ
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 454
19.05.2018, 12:04  [ТС] #31
два два? Такого нету в моём тексте. Вы новерное искали в предложении пользователя, так не надо. Надо искать в моём тексте(внизу).
0
sasha0012
337 / 143 / 105
Регистрация: 21.06.2012
Сообщений: 660
19.05.2018, 12:30 #32
Те скрипты что Вам ранее скидывали, так раз и предназначены для поиска этих слов в тексте. В чём проблема?
В этом:
Цитата Сообщение от Риназ Посмотреть сообщение
тогда другой вопрос. А где предложение, который ввел пользователь(Не слова, а предложение)?
Вам же ответили:
Цитата Сообщение от worldown Посмотреть сообщение
$find = "раз два три четыре пять"; //переменная принимающая из формы слова для поиска
$text = "я думаю часа два два будет два идти три дождь потом три часа светить солнце"; // переменная принимающая из формы предложение в котором идет поиск
Что ещё не понятно? В переменную $text можно засунуть что угодно:
PHP
1
2
3
4
5
$text = $_POST['input_user_text'];
$text = file_get_contents("file_text.txt");
$text = "Любые предложения.
Второе предложение.
Сколько угодно предложений.";
0
Риназ
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 454
19.05.2018, 13:08  [ТС] #33
sasha0012, Я уже не знаю как объяснять(
PHP
1
2
3
$slova = "раз два три четыре пять";
$text = "я думаю часа два два будет два идти три дождь потом три часа светить солнце";//это текст, который ввел пользователь
$my_text = "Это мой текст. Здесь есть куча предложении. Сегодня три часа шел дождь";
Надо найти слова($slova) с моего текста($my_text). Если слов($slova) несколько(два три пять), то по одному взять с предложения($text), который ввел пользователь и поставить после/до слова(т.е. должно получится так: три часа).
0
sasha0012
337 / 143 / 105
Регистрация: 21.06.2012
Сообщений: 660
19.05.2018, 13:39 #34
Цитата Сообщение от Риназ Посмотреть сообщение
Я уже не знаю как объяснять(
Тут два варианта, либо это какая-то инопланетная технология, которая в принципе не укладывается в человеческое сознание, либо Вы не можете донести свою мысль ))

Давайте разберём это предложение:
Цитата Сообщение от Риназ Посмотреть сообщение
Надо найти слова($slova) с моего текста($my_text). Если слов($slova) несколько(два три пять), то по одному взять с предложения($text), который ввел пользователь и поставить после/до слова(т.е. должно получится так: три часа).
Цитата Сообщение от Риназ Посмотреть сообщение
Надо найти слова($slova) с моего текста($my_text).
Нашли, в $my_text найдено одно совпадение из пяти, это три, берем следующее за ним слово и получаем три часа
Цитата Сообщение от Риназ Посмотреть сообщение
Если слов($slova) несколько(два три пять), то по одному взять с предложения($text),
и здесь я завис... То есть если пользователь ввёл не одно слово а несколько, или если в $my_text было найдено больше одного совпадения? А то что происходит после запятой вообще непонятно.

Цитата Сообщение от Риназ Посмотреть сообщение
(т.е. должно получится так: три часа)
Где это должно получится? В $text? Так там это уже есть.

Вот вообще не понимаю связь между $text и $my_text. Вы можете привести нормальный рабочий пример того что, из чего, и каким образом должно получиться?
0
Риназ
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 454
19.05.2018, 13:52  [ТС] #35
Цитата Сообщение от sasha0012 Посмотреть сообщение
и здесь я завис... То есть если пользователь ввёл не одно слово а несколько, или если в $my_text было найдено больше одного совпадения?
если в $my_text было найдено больше одного совпадения
Цитата Сообщение от sasha0012 Посмотреть сообщение
Где это должно получится? В $text? Так там это уже есть.
Ну это без разницы где, можно и с новым переменным.
Цитата Сообщение от sasha0012 Посмотреть сообщение
Нашли, в $my_text найдено одно совпадение из пяти, это три, берем следующее за ним слово и получаем три часа
Нет, не надо брать после слова три слово "часа". Надо взять слово из предложения пользователя. А три это переменная $slova
0
sasha0012
337 / 143 / 105
Регистрация: 21.06.2012
Сообщений: 660
19.05.2018, 14:03 #36
Кажется начинает доходить... Ща за пол литром сбегаю и подумаю ещё...
0
Риназ
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 454
19.05.2018, 14:07  [ТС] #37
sasha0012, Посмотрите #5 ответ. Там я выделил цветом, чтобы было понятнее.
0
worldown
163 / 161 / 100
Регистрация: 22.06.2009
Сообщений: 475
19.05.2018, 14:32 #38
Риназ,
Входные данные:
1 2 3 4 // слова
aa 2 aa cc 3 dd cc 2 aa // текст пользователя
cc 2 cc aa 4 bb 2 aa 1 dd cc 3 ff 3 dd // какой то большой текст

Выходные данные:

cc 2
2 aa
2 aa
cc 3
3 dd
**********************
Так ?
0
Риназ
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 454
19.05.2018, 14:47  [ТС] #39
worldown, Выходные данные необязательно "cc2, 2aa" и т.п. Можно просто 2 или 3(слова).
0
worldown
163 / 161 / 100
Регистрация: 22.06.2009
Сообщений: 475
20.05.2018, 13:35 #40
Риназ,

Напишите, какие выходные данные должны получиться?
Код
Входные данные:
1 2 3 4 // слова
nn 2 aa ее 3 dd cc 2 aa // текст пользователя
cc 2 cc aa 4 bb 2 aa 1 dd cc 3 ff 3 dd // какой то большой текст

Выходные данные:
0
20.05.2018, 13:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2018, 13:35
Привет! Вот еще темы с решениями:

Как называется выражение <<<слово . слово;
Как эту запись правильно назвать? Оператором, конструкцией языка или ещё как?...

Как распечатать всё из таблицы через DataTable через цикл
Как распечатать всё из таблицы через DataTable? lb2.Text = row2.ToString();...

Найти сумму через цикл
Что здесь неправильно? #include &lt;iostream&gt; #include &lt;conio.h&gt; #include...

Как в открытом текстовом файле найти слово и удалить строку которая содержит это слово?
Как в открытом текстовом файле найти слово и удалить строку которая содержит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru