ДоХтор, А я бы выкинул запросы из калбека, не ровен час особо одаренные юзеры начнут перед каждым словом, где нибудь в библиотеке хештеги писать![]()
Как то так наверно попроще будет
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;
}