Forum Webscript.Ru
Программирование => PHP => Тема начата: RelaX от 30 Мая 2005, 12:10:29
-
Здравствуйте!
Помогите пожалуйста с отсеканием последних букв в слов. Кажется, все правильно написано, но отрезает только последнюю букву.
Мне надо отрезать от слова окончание "ого" или "ему", но что-то не получается
$word=\'белого\';
if (strlen($word)>=6) {
$word=eregi_replace("[\'ему\'|\'ого\']$", \'\', $word);
}
echo $word;
-
зачем там квадратные скобки?
зачем там кавычки?
-
если кавычки и скобки убрать, то он просто заменяет текст везде в слове, а не только в конце
-
А если preg_replace("(ему|ого)( |.|,)", "$2",$word)?
-
решил свою проблему, вот функция, которая отрезает окончания у слов
function cut_end_word($word){
//функция отрезания окончания слова, минимальная длина слова 4 символа, если меньше, то не отрезаем
if (strlen($word)>=6) {
//удалим окончания прилазательных, существительных
# $word=preg_replace(\'/(.*)(?:у|е|ы|а|о|э|я|и|ю|ого|ому|ая|ое|ую|ой|ым)$/\', "\\\\1",$word);
if (preg_match(\'/(.*)(?:ого|ому|ему|ая|ое|яя|ую|ой|ым|им)$/\', $word, $m)) {
$word=$m[1];
}
else if (preg_match(\'/(.*)(?:у|е|ы|а|о|э|я|и|ю)$/\', $word, $m)) {
$word=$m[1];
}
}
elseif (strlen($word)==5) {
//удалим окончания прилагательных женского рода, существительных
if (preg_match(\'/(.*)(?:ая|ое|ую|яя|ой|ым|им)$/\', $word, $m)) {
$word=$m[1];
}
else if (preg_match(\'/(.*)(?:у|е|ы|а|о|э|я|и|ю)$/\', $word, $m)) {
$word=$m[1];
}
}
elseif (strlen($word)==4) {
//удалим окончания существительных
if (preg_match(\'/(.*)(?:у|е|ы|а|о|э|я|и|ю)$/\', $word, $m)) {
$word=$m[1];
}
}
return $word;
}