Задать вопрос
@Merkalov

Работа со строками в php?

Есть текст, который вбивается в форму с textarea.
В тексте куча мусора, пробелы, переводы строки и куча ненужных слов и цифр. По-умолчанию в $_POST['textarea'] приходит строка, попробовал создать массив
$arr= explode(' ', $_POST['textarea']);
Но получилось не то чего ожидал, оказалось, что между некоторыми словами не пробел, а перенос строки, так вот explode второй раз не сработает, ну типо сначало разбить по пробелу, а потом додробить по переносу строки. Затрудняюсь в поиске решения.
Перевожу все слова в массив, что бы потом в этом массиве будет проще отыскать ключевые слова и повыдёргивать их, что бы создать новый массив для вывода этих повыдёргиванных слов.

И некоторые слова для поиска не определены, т.е они изменчивы, но порядок у них одинаковый, т.е ищу постоянное слово(известное что оно точно есть)->копирую за ним последующие ячейки с неопределенным содержимым и неизвестной длинной, т.к они всегда следуют за известным словом->вывожу на экран.

Пример:
Входящая строка
> "Привет как твои дела сегодня?"
Находим слово "Привет", нашли - копируем его и то что идёт за ним, а именно 4 слова, пропуская первое:
>Привет твои дела сегодня?
В массиве были бы индексы [0,2,3,4]...

Использовать обычный поиск первого вхождения тоже не подходит(mb_substr). Регулярки тоже не то...
Может я в корне не верно подошёл к решению задачи? Подскажите.
  • Вопрос задан
  • 194 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@BorisKorobkov Куратор тега PHP
Web developer
Если надо получить строки:
$rows = explode("\n", $text);
print_r($rows);


Если надо получить слова:
$words = preg_split('/\W+/u', $text);
print_r($words);


Или
preg_match_all('/\w+/u',  $text, $matches);
print_r($matches);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы