【发布时间】:2023-04-04 12:46:01
【问题描述】:
我正在用 PHP 开发一个网站,它现在设置了自己的状态和墙系统(分别类似于 twitter 和 facebook)。我正在尝试这样做,以便用户稍后可以更改其用户名,并且任何提及该用户的状态或墙帖(如“@woo hi!”)都将替换为新用户名。
我尝试在 MySQL 中使用 REPLACE 查询,但显然我不能将 'username' 替换为 'newusername',因为如果用户名为 @w 的人将其用户名更改为 @f,那么其他人的帐户使用用户名@woo 将变为@foo。明白我的意思了吗?
我认为我的选择基本上是创建自己的格式来保存状态/墙帖,用 |woo| 替换用户名@woo (或任何表示用户名结尾的东西),但我很好奇其他人是否对此事有不同的想法,或者是否有人知道让 REPLACE 查询为我做这件事(就像一种让它整体扫描的方法话,这样@w != @woo。我很想听听你的想法。
编辑:
我想出了我要做什么,并正在更新此内容以供其他人将来参考。我决定用 #@usernames# 替换 statuses/wall 帖子中的所有 @usernames 并将它们保存在数据库中。所以现在我可以使用 MySQL 的简单 REPLACE 查询来替换状态/墙帖子中提到的所有用户名,并且不会有歧义问题(@w 在我的数据库中变成 #@w#,这意味着更改用户名 @ w (#@w#) 到 @f (#@f#) 不会将 #@woo# 更改为 #@foo#。当然,现在在帖子中显示用户名时,我必须通过“unformat”运行内容函数在开始和结束时去掉#,但这还不错。
【问题讨论】:
-
只有twitter和facebook,不要浪费时间:)
-
如果MZ因为MySpace而放弃了怎么办? :p
-
yes123,我更喜欢能提高我对手头问题的了解的答案。而至于只有twitter和facebook,以前也有“只有myspace”。