gpt4 book ai didi

PHP explode 检测用户名

转载 作者:行者123 更新时间:2023-11-29 06:49:01 25 4
gpt4 key购买 nike

我正在尝试构建一个 PHP 代码来检测类似 Twitter 的提及,但我不是链接到 @username,而是定位用户的 ID 并引用它。

function get_user_id_from_username($username) {
$username = sanitise($username);
return mysql_result(mysql_query("SELECT user_id FROM users WHERE user_sitename = '$username'"), 0, 'user_id');
}

$string = sanitise($_POST['updatetext']);
$explosion = explode("@", $string);
$count = count($explosion);

for($i = 0; $i < $count; $i++){
$explosion2 = explode(" ", $explosion[$i]);
$explosion2 = $explosion2[0];

$username_id = get_user_id_from_username($explosion2);

$string = str_replace("@{$explosion2}", "<a href='profile.php?id={$username_id}'>{$explosion2}</a>", $string);
}

我遇到的问题是只有当@username 后面没有标点符号时才会检测到用户名,但是如果 $update 等于“你好@username,你还好吗?”查询找不到等于“用户名”的用户名,因此会引发错误。

一旦存在任何标点符号,是否有一种方法可以结束 explode ?那么 $explosion2 不是等于“用户名”,而是等于“用户名”?

最佳答案

不要使用explode,而是:

preg_match_all('/@[A-Za-z]+/',$string,$usernames);

这将为您提供一组用户名 $usernames,然后您可以循环执行您的数据库查找。请注意,用户名将包含 @ - 您需要在进行查找之前将其删除。

我假设用户名完全由字母组成——如果你想允许数字或其他字符,只需相应地调整正则表达式即可。

关于PHP explode 检测用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16681343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com