php - PHP用户标记系统

  显示原文与译文双语对照的内容
0 0

所以我在进行研究时没有真正发现关于这个话题的任何内容。 基本上我想做的就是让人们在他们的帖子中加入其他用户。 像

@Bob, SO is a great place!

然后我会处理通知,一旦知道了用户名,我就会通知用户。 所以我的问题是我该如何解决这个问题。 我试图实现如to标签系统,如果你点击标签,它将带你到用户的配置文件。 我会使用 正规表达式 和从 @? 中除去用户名的用户名是它们的任何库,这使它更容易? 任何帮助都很有用。

时间:原作者:7个回答

0 0

在没有 @的情况下获取 @username的正规表达式 是:

(?<=@)[p{L}p{N}]+

这里 正规表达式 假定用户名仅由unicode字母字符和数字组成。 它还可以使用德语元音:

原作者:
0 0

整个逻辑取决于这几行。 在文章中找到所有 @names,在你的数据库中找到他们的电子邮件并给他们发送一个通知。

<?php
$id = 551;//id of this post which is unique
$post ="@Bob, SO is a great place! Even @John is here";//post content
$pattern = '/@([a-zA-Z0-9]+)/';//the pattern to extract all nicknames (without @)
preg_match_all($pattern, $post, $matches);
//let's select all these users in order to retrieve their emails
$query ="SELECT nickname, email FROM users WHERE nickname IN ('". implode("', '", $matches[1])."')";
$results = $mysqli_query($query);
while($row = $mysqli_fetch_array($results, MYSQLI_ASSOC)){
//send an email and a link to the post where he/she has been tagged/mentioned 
 mail($row["email"],"Subject","Hello". $row["nickname"]." someone tagged you. <a href='http://domain/posts/". $id."'>Take a look</a>"); 
}
?>
原作者:
...