archakov06
@archakov06
Frontend-разработчик (ReactJS)

Как в PHP заменить все тэги с RegExp?

Реализовал комментарии на своем проекте и при цитировании, решил в качестве имени вводить такой тэг: [@UserName], который в свою очередь будет ссылкой при отображении на сайте.

Как заменить во всем тексте все такие тэги на ссылки.

Пример: "[@Вася Пупкин], привет!! Ты знаешь этого чувака [@Владимир Владимирович]???"
Отображаться будет как:
<a href="/user/Вася Пупкин">@Вася Пупкин</a>, привет!! Ты знаешь этого чувака <a href="/user/Вася Пупкин">@Владимир Владимирович</a>???


Мой кривокод заменяет только @:
echo preg_replace("/#(\w*[a-zA-Z_0-9]+\w*)/", "\1", $text);
  • Вопрос задан
  • 121 просмотр
Решения вопроса 2
@Wol_fi
php, js, mysql, highload
preg_replace('/\[(@([^\]]+))\]/', '<a href="/user/$2">$1</a>', $text);
Ответ написан
Комментировать
twobomb
@twobomb
Написал на JavaScript, думаю разберешься. Вот пример использования
function handleString(str){
		return str.replace(/\[.[^\]]{2,}\]/g, function(arg1) {
  name = arg1.replace(/^\[@/, "").replace(/\]$/, "");
  return "<a href=\"/user/" + name + "\">@" + name + "</a>"
});
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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