我需要用php中的链接替换包含@
符号的单词
e.g:
$string = "you would love this @matt";
会变成“you would love this <a href="/user/matt">@matt</a>
”
从研究中我需要使用preg_replace()
,但不知道从哪里开始。有任何想法吗?
感谢
答案 0 :(得分:2)
$string = "you would love this @matt";
$pattern = '/(^|\W)(@([a-zA-Z]+))/';
$replacement = '$1<a href="/user/$3">$2</a>';
echo preg_replace($pattern, $replacement, $string);
答案 1 :(得分:2)
您可以使用preg_replace_callback()
:
echo preg_replace_callback('/(?<=\s)@(\w+)/', function($match) {
return sprintf('<a href="/user/%s">@%s</a>',
urlencode($match[1]),
$match[1]
);
}, htmlspecialchars($string));
执行此操作可以为每场比赛应用其他格式。