我想知道是否可以制作一个带有空格的用户名的 PHP 提及系统?我试过这个
preg_replace_callback('#@([a-zA-Z0-9]+)#', 'mentionUser', htmlspecialchars_decode($r['content']))
我的功能:
function mentionUser($matches) {
global $db;
$req = $db->prepare('SELECT id FROM members WHERE username = ?');
$req->execute(array($matches[1]));
if($req->rowCount() == 1) {
$idUser = $req->fetch()['id'];
return '<a class="mention" href="members/profile.php?id='.$idUser.'">'.$matches[0].'</a>';
}
return $matches[0];
它有效,但不适用于带空格的用户名...我尝试添加\s,它有效,但效果不佳, preg_replace_callback 检测用户名和消息的其他部分,因此不会出现提及...有吗有什么解决办法吗?谢谢 !
白衣染霜花
猛跑小猪