главная страница каталог файлов полезные статьи документация форум лицензионное соглашение
главная страница новости документация полезно знать каталог файлов форум
о проекте/об авторе примеры работ
подурачимся? :)
поиск по сайту

введите слово или фразу для поиска:

Где искать:

слово или фразу

точное совпадение

мои благодарности

PHP-Nule по-русскиСайт и форум русской поддержки CMS PHP-Nuke. Особая благодарность админу этого сайта Михе hard'у

DKlab - web-технологииЗа «Денвера» и за бесценные советы, почерпнутые из книг Д. Котерова

Sypex Dumper - быстрый и удобный бэкап MySQLУникальная утилита для создания BackUp баз данных сайтов.


А еще я благодарю свой хостинг — за шуструю и бесперебойную работу :)

ваш аккаунт
логин:
пароль:
запомнить меня 


регистрация забыли пароль?
последние статьи

Защита и лечение компьютера от вирусов
По работе мне довольно часто приходиться сталкиваться с компьютерами, зараженными вирусами (на самом деле не всякая...

Выбираем значения и считаем сумму
Недавно понадобилось сделать на JavaScript одну казалось бы довольно тривиальную задачу — автоподсчет «на лету» общей суммы заказа в корзине интернет-магазина. Казалось бы — данная функция настолько популярна, что готовых примеров должно быть сотни. Не тут-то было. Почесав затылок и выпив пару кружек кофе приступил к собственной релизации задумки, которой и хочу поделиться.

смайлики. Часть 2.
В прошлой статье я писал, как добавить к текстовому полю формы JavaScript, который добавляет в форму BB-код смайлика...

Добавляем в форму смайлики
На самом деле добавить в форму гостевой книги или комментариев смайлики не так сложно, как кажеться — нужно...

Вред от XHTML 1.0 Strict
Мода на «web 2.0», стремление подогнать сайты под какие либо стандарты вынуждают web-мастеров идти на...

Магазин ноутбуки. http://www.labaz.ua. батарея отопления Форекс клуб Any premium certificate at our site

последние сообщения на форуме

смайлики. Часть 2.

12 апреля 2008

В прошлой статье я писал, как добавить к текстовому полю формы JavaScript, который добавляет в форму BB-код смайлика при клике по картинке, здесь же расскажу о том, что нам с ними, этими BB-кодами делать дальше, а именно — как их обработать в PHP-скрипте.

Сразу хочу обрадовать — никакого кошмара про регулярные выражения в статье не будет. Да и зачем они? Перед нами по-сути стоит весьма простая задача — преобразовать конкретный набор символов на столь-же определенный тег со ссылкой на изображение.

В этой статье я воспользуюсь формой со смайлами из первой части урока — «Добавляем в форму смайлики». Допустим, пользователь ввел текст в нашу форму, и PHP-скрипту на обработку «досталась» переменная $variable с таким значением:

$variable = "Привет, как дела? :) А я вот тут к вам пришел  :smoke: Вот так 8)";

Теперь наша задача — преобразовать «символосочетания» :), :smoke: и 8) в HTML-теги . Этим займется функция strtr. Выражаясь простым языком — эта функция просто заменяет одно на другое. Ее незаменимая способность — замена в массивах, и именно этим мы и воспользуемся, написав массив наших символов и теги картинок, на которые мы их будем заменять. Вот как это будет выглядеть:

$variable = strtr($variable, array(
    ':)'=>'',
    ':('=>'',
    :babah:'=>'',
    '8)'=>'',
    ';)'=>'',
    ':sorry:'=>''
));

В принципе, это все — нужного результата мы добились, но чаще всего бывает, что смайлики требуются не в одном скрипте, а в нескольких (гостевая книга, комментарии в новостях, в статьях и т.д.), и переписывать один и тот же код много раз может надоесть. По этому мы немного «усовершентсвуем» наш код, превратив его в функцию. Эту функцию необходимо записать в какой-либо файл, подключаемый ко всем скриптам — как правило, в любой нормальной системе управления сайтами таковые имеются. Если нет — то можно создать отдельный php-файл с этой функцией и подключать его к нужным скриптам командой include или require.

Собственно, сама функция:

function replase_smile($variables){
$modified = strtr($variables, array(
        ':)'=>'',
        ':('=>'',
        ':babah:'=>'',
        '8)'=>'',
        ';)'=>'',
        ':sorry:'=>''
    ));
    return $modified;
}

Теперь нам остается только обработать нужную переменную нашей функцией:

$variable = replase_smile($variable);

Вот теперь — действительно все. Надеюсь, это принесет какую либо пользу ;) .

Дополнительно:

просмотров: 41966 комментариев: 19



комментировать:
 
Ваше имя:
сайт или e-mail:
текст комментария:
Johnny 18 мая 2010
<? $myrow3 = mysql_fetch_array($result3);
do{
$myrow3['text'] = strtr($myrow3['text'], array(
':)'=>'<img src="img/smile/smile.gif">',
':('=>'<img src="img/smile/sad.gif">',
';)'=>'<img src="img/smile/wink.gif">',
':cool:'=>'<img src="img/smile/cool.gif">',
':cry:'=>'<img src="img/smile/cry.gif">',
'o_O'=>'<img src="img/smile/shok.gif">',
':lol:'=>'<img src="img/smile/lol.gif">',
':mad:'=>'<img src="img/smile/mad.gif">',
':yahoo:'=>'<img src="img/smile/yahoo.gif">',
':D'=>'<img src="img/smile/biggrin.gif">',
':friends:'=>'<img src="img/smile/friends.gif">',
':ok:'=>'<img src="img/smile/ok.gif">',
':yes:'=>'<img src="img/smile/yes.gif">',
':no:'=>'<img src="img/smile/no.gif">',
':victory:'=>'<img src="img/smile/victory.gif">',
':yu:'=>'<img src="img/smile/yu.gif">',
':nyam:'=>'<img src="img/smile/nyam.gif">',
':rtfm:'=>'<img src="img/smile/rtfm.gif">'
));
printf ("<p>%s</p>",$myrow3["text"]);
}
while ($myrow3 = mysql_fetch_array($result3)); ?>

 

Miheros 01 мая 2010
спс, очень пригодилось

 

Old_Chroft 26 апреля 2010
Mike, если под smiles.php подразумевается файл, в котором содержится код функции replase_smile - то никак. И незачем. Эта функция - обработчик уже имеющихся данных, в форме она не нужна.

 

Mike 25 апреля 2010
как подключить файл smiles.php к html форме?

 

Old_Chroft 24 ноября 2009
Валентина, этот код к форме как к таковой отношения не имеет. Можно конечно во время обработки данных из формы преобразование сделать - но это не очень хорошая идея: представьте, что вы изменили имя папки с картинками - а в базе они уже жестко прописаны. Выше описанную функцию нужно вставлять перед выводом комментариев.

 

Валентина 24 ноября 2009
А куда именно вставлять этот код? после формы?

 

Old_Chroft 08 октября 2009
Daggett, конечно же можно так написать (я имею ввиду:
':)'=>'<img src="/images/smile/01.gif">',
':-)'=>'<img src="/images/smile/01.gif">',

На одно и тоже изображение-смайлик можно "навесить" неограниченное количество правил.