Просмотр поста

.
kantry
Hey guys! Finally I'm gonna change status!?

ДоХтор, А я бы выкинул запросы из калбека, не ровен час особо одаренные юзеры начнут перед каждым словом, где нибудь в библиотеке хештеги писать
Как то так наверно попроще будет

function linkUser($string)
{
    global $db; // це в 6-ой ветке наверно не надо))
    if (preg_match_all('/\s@([A-zА-я]{3,20}+)/u', $string, $matches)) {// что то типа этого в регистрации логина
            $array = (array_count_values($matches[1]));
            while (current($array)) {
               $value = key($array);
               next($array);
               $val[] = '\'' . $value . '\'';
            }
    } else { // если хештегов нет прекращаем движение к базе)))
        return $string;
    }
    // BINARY надо, иначе mysql не всегда отличается сообразительностью
    $res = $db->query("SELECT `id`, `name` FROM `users` WHERE BINARY `name` IN(" . join(', ', $val) . ")")->fetchAll();
    if (count($res)) {
        foreach($res as $post) {
            $string = str_replace($post['name'], '[user=' . $post['id'] . ']' . $post['name'] .'[/user]', $string);
        }
    }
    return $string;
}