Я хочу следующее: у меня есть строка, и я хочу найти имена пользователей в этой строке из базы данных, например:
"Dear user, xy xy xy, Kind Regards, me"
И затем, я хочу найти все имена пользователей в строке из базы данных и замените ее ссылкой, например (вывод из функции):
"Dear <a href="link.php?user=user">user</a>, xy xy xy, Kind Regards, <a href="link.php?user=me">me</a>"
Для проверки всех имен пользователей я бы использовал RedBean PHP:
$alluser = R::getAll('SELECT * FROM user')
I Вы только что создали код для него:
function mention($string) {
$alluser = R::getAll('SELECT * FROM user');
foreach ($alluser as $user) {
//The Regular Expression filter
$reg_exUrl = "/".$user['username']."/";
if (preg_match_all($reg_exUrl, $string, $usernames)) {
foreach ($usernames as $username) {
$search = $username;
$replace = '<a href="user.php?tmpid='.$user['tmpid'].'">' . $user['username'] . '</a>';
$string = str_replace($search, $replace, $string);
if (strlen($allmention) > 0) {
$spacecomma = ", ";
} else $spacecomma = "";
$allmention .= $spacecomma . $user['tmpid'];
}
}
}
return $string;
}
Выдает следующую ошибку:
Fatal error: Uncaught ArgumentCountError: Too few arguments to function mention(), 0 passed in xyz.php on line 65 and exactly 1 expected in xyz.php:34 Stack trace: #0 xyz.php(65): mention() #1 {main} thrown in xyz.php on line 34