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

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

Где искать:

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

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

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

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

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

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


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

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


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

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

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

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

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

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

Нагревание воды, двухконтурные котлы стоимость. создание web сайтов

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

смайлики. Часть 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);

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

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

просмотров: 38051 комментариев: 15



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

 

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

 

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

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

 

Daggett 07 октября 2009
Афигенно :) Очень пригодилось :) А если кто знает, можно ли сделать к примеру так -
':)',':-)','=)'=>'<img src="/images/smile/01.gif">'
Ну не именно так, это примерно или только так -
':)'=>'<img src="/images/smile/01.gif">',
':-)'=>'<img src="/images/smile/01.gif">',
'=)'=>'<img src="/images/smile/01.gif">', ?
Как-то невнятно я написал =)))

 

neman 02 сентября 2009
Огромное спасибо!Обыскал весь интернет и нашел только у вас

 

Сергей 24 августа 2009
Спасибо большое Old_Chroft все получилось! Мир не без добрых людей еще раз спасибо что откликнулись!

 

Old_Chroft 21 августа 2009
Сергей, сделал примеры PHP-обработки формы: http://natali-w.com/images/file/smiley.zip - скачивайте архив. JS-примеров там нет - лень сейчас делать :).