Делаю обработку тэгев (слов) в ссылки исходя из массива слов. Если найдено какое-то слово из массива, то заменяется на ссылку.
Но есть проблема, иногда заменяется некорректно из-за того, что обрабатываются еще и 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-тэге не выполнялась регулярка (обработка ссылки).