Вы используете регулярное выражение, чтобы найти весь текст, заканчивающийся границей слова (\b
), которая начинается с @
. Для каждого из них вы извлекаете текст после @
и создаете тег привязки следующим образом:
echo preg_replace_callback('/@.+?\b/', function($m) {
$str = substr($m[0], 1);
return sprintf("<a href='%s'>%s</a>", $str, $str);
}, $comment);