Олег Че
Мудрец
(10833)
1 год назад
Для решения этой задачи можно воспользоваться функцией preg_replace, которая позволяет заменять совпадения регулярного выражения на заданную строку. Вот пример кода, который заменит слово "Бежит" на слова "Бег", "Бегает", "Бежать" и т.д.:
$word = 'Бежит'; // вместо этого слова может быть любое другое
// массив возможных окончаний
$suffixes = array('ет', 'ут', 'ит', 'ат', 'ят', 'ть');
// регулярное выражение, которое ищет слово "Бежит"
$pattern = '/\b' . preg_quote($word) . '\b/iu';
// заменяем слово "Бежит" на все возможные формы глагола
$result = preg_replace_callback($pattern, function($match) use ($suffixes) {
$stem = mb_substr($match[0], 0, -4); // основа слова без окончания "ит"
$forms = array_map(function($s) use ($stem) { return $stem . $s; }, $suffixes); // все возможные формы
return implode(', ', $forms); // объединяем формы через запятую
}, $word);
echo $result; // выводим результат
Также можно добавить дополнительную проверку, чтобы функция работала корректно для разных словоформ.
Есть слово "Бежит"
Как в PHP сделать так, что бы при вводе вышеуказанного слова (Бежит) в форму и отправки - выдавало вот так: Бег, Бегает, Бежать и т. д.
Функция интересная, но не могу ее реализовать. За ранее спасибо!