Как сделать смайлы в комментариях
Недавно меня попросили рассказать о том, как сделать смайлы в комментариях. Я решил, что эта тема может быть многим интересна, поэтому в данной статье о ней и расскажу.
Сразу привожу прокомментированный PHP-код:
<?php
$comment = "Всем привет :-) и ещё :-D"; // Комментарий пользователя
$smiles_key = array(":-)", ":-D"); // Массив с кодами смайлов
$smiles_value = array("smile_1.gif", "smile_2.gif"); // Массив с соответствующими путями к изображениям смайлов
for ($i = 0; $i < count($smiles_value); $i++)
$smiles_value[$i] = "<img src='".$smiles_value[$i]."' alt='' />"; // Делаем тег img на основании пути к изображению
$comment = str_replace($smiles_key, $smiles_value, $comment); // Заменяем все коды на теги img со смайлами
echo $comment; // Выводим комментарий
?>
Самое главное в данном коде то, что все комментарии хранятся не с тегами img, а именно с кодами смайлов, то есть чистый текст. А уже при выводе они заменяются на изображения и выводятся на страницу.
Что касается соответствий кодов смайлов и их изображений, то можно (и даже лучше) хранить их в базе данных. А там, где требуется, просто извлекать из неё эти соответствия.
Вот таким нехитрым образом можно сделать смайлы в комментариях у себя на сайте.
-
- Михаил Русаков
Комментарии (9):
А как сделать так, чтобы записывать переменную $comment в базу данных. Надо просто ввести $comment. И как сделать так, чтобы записывались картинки в текст , а не символы ? Или можно сделать так, чтобы были записаны символы, а на выводе уже символы переделывались в картинки ? Ответьте пожалуйста. Меня этот вопрос мучает.
Ответить
Как раз и нужно записывать не картинки в базу, а символы. А затем уже эти символы при выводе заменять на картинки.
Ответить
Можете написать сдесь или статью как при выводе менять символы на необходимые смайлы ?
Ответить
В данной статье это и показывается.
Ответить
Здравствуйте! меня интересует, как сделать текст,который будет отображаться в поисковике?
Ответить
Не понял что мы конкретно хотим сделать этой строкой $smiles_value[$i] = "<img src='".$smiles_value[$i]."' alt='' />"; // Делаем тег img на основании пути к изображению Объясните мне пожалуйста поподробней.Как вот я понял $smiles_value[$i]-Это где храниться 1 смайл и мы прописываем его путь,а как вот второй прописать не понятно совсем(
Ответить
Смайлы хранятся в массиве, вот мы и выводим их все в цикле.
Ответить
Сами изображения не отображаются. Из-за чего это может быть?
Ответить
Пути не верные.
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.