За последние 24 часа нас посетили 64073 программиста и 1741 робот. Сейчас ищут 850 программистов ...

Смайлы, хранить в базе или в массиве

Тема в разделе "PHP для новичков", создана пользователем viphost, 2 янв 2013.

  1. viphost

    viphost Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    Всем привет, подскажите как правильно будет организовать добавление смайлов
    1. Создать функцию с массивом смайлов и прогонять коммент через нее для поиска, к примеру
    Код (Text):
    1. ":=):"=>"<img src="">"
    2. При добавлении коммента прогонять через функцию с массивом смайлов и записывать сразу в базу
    Код (Text):
    1. <img src="smile.gif">
    3. Или есть какие то другие варианты?
    ПС. смайлов около 100, можно и сократить, но не хотелось бы.
    Посоветуйте как лучше, что быстрее
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Быстрее - массив в php файле. Функциональнее - б.д. При желании сделать функционал в админке для добавления/редактирования смайлов - с базой будет проще.
     
  3. viphost

    viphost Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    т.е. в базе отвести таблицу под смайлы где их хранить
    Код (Text):
    1. TABLE
    2. id | name | smile
    3. 1 | =) | <img src="..." />
    а потом при выводе комента искать в строке name и заменять картинкой?
    Или же заведомо вписывать в базу в текста коммента?
    Код (Text):
    1. коммент коммент <img src="..." /> коммент
    Массив просто будет жесть какой большой, хотя вот еще идея такая появилась, написать функцию, скажем пользователю доступны смайлы вида
    Код (Text):
    1. :smil1: :smail2:
    Написать функцию что то вроде
    Код (Text):
    1. function smile($comment) {
    2. $out = preg_replace('/\:(smile|smile2|smile3)\s*\:/', "<img src="/images/$1.gif" />", $comment);
    3. return $out;
    4. }