Показать сообщение отдельно
  #1 (permalink)  
Старый 10.10.2016, 17:59
Аспирант
Отправить личное сообщение для snovapavel Посмотреть профиль Найти все сообщения от snovapavel
 
Регистрация: 08.03.2015
Сообщений: 78

Почему не срабатывают условия в PHP?
Добрый день!

Подскажите пожалуйста, почему не срабатывают условия?

Необходимо в тексте найти все буквы «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>
    $content = preg_replace( "/bab/miu", "b<b>a</b>b", $text );
  }



А вторая часть никогда не срабатывает, вот эта:


else {
    // заключаем её в тег <i>
    $content = preg_replace( "/a/miu", "<i>a</i>", $text );
  }


Почему? И как заставить её работать?......
Ответить с цитированием