Как я могу искать имена пользователей в строке? - PullRequest
1 голос
/ 22 февраля 2020

Я хочу следующее: у меня есть строка, и я хочу найти имена пользователей в этой строке из базы данных, например:

"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

Ответы [ 2 ]

0 голосов
/ 22 февраля 2020

Ваша ошибка не имеет ничего общего с кодом, который вы опубликовали. Ошибка в коде, который вызывает функцию mention. Он должен называться как

$result_string = mention($initial_string)

, но, судя по ошибке, он называется как

$result_string = mention()
0 голосов
/ 22 февраля 2020

Если вы получаете массив из базы данных, то можете использовать foreach для получения каждого имени пользователя для создания вашего сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...