84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
如题.... 前端做法没什么压力,就是后端怎么对匹配用户进行匹配加url啊~~
学习是最好的投资!
php - How to match users with @ similar to Sina - PHP Chinese website Q&A - php - How to match users with @ similar to Sina - Q&A on PHP Chinese website
Take a look around, Study it.
微博的做法其实是这样的,id,uid,昵称都是唯一的。http://weiboc.om/{id}http://weibo.com/u/{uid}http://weibo.com/n/{screen_name}
三个字段都建立唯一索引。@后也没必要处理URL,展现时前台用JS匹配昵称,点击链接后通过路由决定查找的字段,然后跳转到对应主页。
@的文字是用户名,而链接是id,所以需要一个用户名到id的查询,是缓存,nosql还是普通的db看你的业务。 然后php可以写一个preg_replace_callback 举例:
$text = preg_replace_callback('/@(\w+)/u', uname, $text); function uname($matches) { $uname = $matches [1]; $uid = get_uid_by_uname($uname); return "<a href=\"/u/{$uid}\">{$uname}</a>"; }
自动完成
php - How to match users with @ similar to Sina - PHP Chinese website Q&A - php - How to match users with @ similar to Sina - Q&A on PHP Chinese website
Take a look around, Study it.
微博的做法其实是这样的,id,uid,昵称都是唯一的。
http://weiboc.om/{id}
http://weibo.com/u/{uid}
http://weibo.com/n/{screen_name}
三个字段都建立唯一索引。@后也没必要处理URL,展现时前台用JS匹配昵称,点击链接后通过路由决定查找的字段,然后跳转到对应主页。
@的文字是用户名,而链接是id,所以需要一个用户名到id的查询,是缓存,nosql还是普通的db看你的业务。
然后php可以写一个preg_replace_callback
举例:
自动完成