Задать вопрос
archakov06
@archakov06
Frontend-разработчик (ReactJS)

PHP: Как обработать тэги в тексте?

Делаю обработку тэгев (слов) в ссылки исходя из массива слов. Если найдено какое-то слово из массива, то заменяется на ссылку.

Но есть проблема, иногда заменяется некорректно из-за того, что обрабатываются еще и BB-тэги.

К примеру есть такой текст:
После того, как [url=https://www.iphones.ru/iNotes/449203]Apple лишила пользователей слушать музыку[/url],


И если тэг Apple найден, то заменяется на ссылку:
<a href="/tag/Apple">Apple</a>

И получается внутри ссылки добавляется еще одна ссылка на тэг Apple. В итоге браузер неправильно отображает ссылку.

Я написал следующий код:
preg_replace("/\b(".$tags[$i]->tag.")\b/i", '<a title="'.$tags[$i]->tag.'" href="/tag/'.$tags[$i]->tag.'">'.$tags[$i]->tag.'</a>', $text);


Но, надо сделать так, чтобы регулярка проверяла, есть ли впереди символ ]. Или проверять, чтобы в BB-тэге не выполнялась регулярка (обработка ссылки).
  • Вопрос задан
  • 158 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
bigton
@bigton
Web-программист
Проверяйте что бы потенциальный тег не был обрамлен треугольными скобками.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽