Есть окончания и слово: PHP: $okon = array("ь", "а", "я", "ями", "ев", "е", "о", "и"); $slovo = "лошадями"; Нужно что бы окончание искалось только в конце слова. Если окончания нет выводится слово целиком. А если есть то загнать их в две переменные корень и окончание. Прошу помочь, мучаюсь уже целый день.
Вот сдалал, остался вопрос каким образом окончание отдельно в переменную вывести, через explode? Или есть более гуманный способ? PHP: $okon = '/(и|ями|я|й|ь)$/'; $text = "лошадями"; $text = preg_replace("$okon", '<span style="background:#eef938">\1</span>', $text); echo $text;
PHP: <?php /** * (c) Apple */ // Окончания $postfixes = array("ь", "а", "я", "ями", "ев", "е", "о", "и"); // Слово $text = "лошадями"; /** * Преобразование текста и окончаний для обработки */ $postfix = implode('|', $postfixes); if(preg_match('/('.$postfix.')$/six', $text, $match)) { $text = preg_replace('/('.$postfix.')$/si', '<span style="background:#eef938">$1</span>', $text); $postfix = $match[1]; } else $postfix = ""; // Смотрим ... echo "<b>Слово:</b> ${text} <br /><b>Окончание:</b> ${postfix}"; ?>