Добрый день!
Подскажите пожалуйста, почему не срабатывают условия?
Необходимо в тексте найти все буквы «a»
1. Если буква «a» стоит между двух букв «b» - вот так: «bab», то нужно заключить её в тег <b>, вот так: b<b>a<b>b;
2. Если буква «a» не стоит между двумя «b», то заключить её в тег <i> - вот так: <i>a<i>.
Это сильно-сильно упрощенная, необходимая мне конструкция, поэтому её необходимо сделать именно с помощью if else.
Что делаю я:
// ищем в тексте, поочереди, все буквы «а»
if ( preg_match( "/a/miu", $text ) ) {
// далее поверяем, находится ли буква «a», между двух букв «b»
if ( preg_match( "/bab/miu", $text ) ) {
// если условие верно, то заключаем её в тег <b>
$text = preg_replace( "/bab/miu", "b<b>a</b>b", $text );
// во всех остальных случаях...
} else {
// заключаем её в тег <i>
$text = preg_replace( "/a/miu", "<i>a</i>", $text );
}
}
Почему-то, срабатывает только первая часть условия, вот это:
// далее поверяем, находится ли буква «a», между двух букв «b»
if ( preg_match( "/bab/miu", $text ) ) {
// если условие верно, то заключаем её в тег <b>
$text = preg_replace( "/bab/miu", "b<b>a</b>b", $text );
}
А вторая часть никогда не срабатывает, вот эта:
else {
// заключаем её в тег <i>
$text = preg_replace( "/a/miu", "<i>a</i>", $text );
}
Почему? И как заставить её работать?......