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 просмотров
Пригласить эксперта
Ответы на вопрос 1
bigton
@bigton
Web-программист
Проверяйте что бы потенциальный тег не был обрамлен треугольными скобками.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы