ДоХтор, Спасибо се час попробую
ДоХтор, вот так сделаль не получилас
$post = '@udesign test';
preg_match('~\s@([\w]+)~iu', $post, $match);
$udes_name = print_r($match[1]);
$ud_st2 = mysql_query("SELECT * FROM `users` where `name` = '". $udes_name ."'");
$ud_st = mysql_fetch_assoc($ud_st2);
echo '<a href="http://' . $_SERVER['HTTP_HOST']. '/users/profile.php?user=' . $ud_st['id'] . '">'; print_r($match[0]); echo '</a>';
echo $post;
# Udesign (28.01.2017 / 22:24)
ДоХтор, вот так сделаль не получилас
$post = '@udesign test';
preg_match('~\s@([\w]+)~iu', $post, $match);
$udes_name = print_r($match[1]);
$ud_st2 = mysql_query("SELECT * FROM `users` where
$post = '@udesign test';
preg_match('~@([\w]+)~iu', $post, $match);
$udes_name = $match[1];
$query = mysql_query("
SELECT * FROM `users`
WHERE `name` = '". $udes_name ."'
");
$ud_st = mysql_fetch_assoc($query);
echo '<a href="http://'. $_SERVER['HTTP_HOST'] .
'/users/profile.php?user='. $ud_st['id'] .'">'. $match[0] .'</a>';
Udesign, только ещё в этот код надо добавить условие с проверкой, существует ли такой юзер в бд. Если существует, то формировать ссылку на его профиль - иначе ничего не делать (или же удалять символ @ перед написанным ником, если такого ника в базе нет)
ДоХтор, Тепер работает ну тепер выводит толка @Udesign a test не выводит допустим я напишу сообщения вот так Привет @Admin должно выводит Привет <a href="http://sayt.ru/users/profile.php?user=1">Admin</a>
# ДоХтор (28.01.2017 / 22:31)
Udesign, только ещё в этот код надо добавить условие с проверкой, существует ли такой юзер в бд. Если существует, то формировать ссылку на его профиль - иначе ничего не делать (или же удалять символ
Если добавлю
$total_uds = mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `name`='". $udes_name ."'"), 0);
if(!empty($total_uds)){
echo '<a href="http://'. $_SERVER['HTTP_HOST'] . '/users/profile.php?user='. $ud_st['id'] .'">'. $match[0] .'</a>';
}else{
echo $post;
}
# Udesign (28.01.2017 / 22:35)
ДоХтор, Тепер работает ну тепер выводит толка @Udesign a test не выводит допустим я напишу сообщения вот так Привет @Admin должно выводит Привет <a href="http://sayt.ru/users/profile.php?user=1">Admi
Вот
$url = 'Привет @Admin';
if (preg_match('~@([\w]+)~iu', $url, $match)) {
$query = mysql_query("
SELECT * FROM `users`
WHERE `name` = '". $match[1] ."'
");
$ud_st = mysql_fetch_assoc($query);
$repl = '<a href="http://'. $_SERVER['HTTP_HOST'] .
'/users/profile.php?user='. $ud_st['id'] .'">'.
$match[0] .'</a>';
echo str_replace($match[0], $repl, $url);
}
preg_replace_callback для индусов что ли создан?
# Udesign (28.01.2017 / 22:37)
Если добавлю
$total_uds = mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `name`='". $udes_name ."'"), 0);
if(!empty($total_uds)){
echo '<a href="http://'. $_SERVER['HTTP_HOST'] .
Не обязательно ещё один запрос в базу писать. Можно же на основе тех данных, которые ты получил при первом запросе, выполнять проверку на существование юзера. Например
$url = 'Привет @Admin';
if (preg_match('~@([\w]+)~iu', $url, $match)) {
$query = mysql_query("
SELECT * FROM `users`
WHERE `name` = '". $match[1] ."'
");
$ud_st = mysql_fetch_assoc($query);
if (!empty($ud_st['id'])) {
$repl = '<a href="http://'. $_SERVER['HTTP_HOST'] .
'/users/profile.php?user='. $ud_st['id'] .'">'.
$match[0] .'</a>';
echo str_replace($match[0], $repl, $url);
} else {
echo str_replace($match[0], $match[1], $url);
// Если такого ID нет в базе, то в браузер выйдет
// Привет Admin
}
}