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

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

Где искать:

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

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

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

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

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

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

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


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

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

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

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

Устройство тем оформления
Учебное пособие: делаем собственную тему оформления (шаблон) для системы управления сайтом Natali. Подробное описание методики интеграции своего дизайна в систему управления сайтом.

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

12 апреля 2008

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

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

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

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

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

$variable = strtr($variable, array(
    ':)'=>'<img src="/images/smile/01.gif">',
    ':('=>'<img src="/images/smile/02.gif">',
    :babah:'=>'<img src="/images/smile/03.gif">',
    '8)'=>'<img src="/images/smile/04.gif">',
    ';)'=>'<img src="/images/smile/05.gif">',
    ':sorry:'=>'<img src="/images/smile/06.gif">'
));

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

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

function replase_smile($variables){
$modified = strtr($variables, array(
        ':)'=>'<img src="/images/smile/01.gif">',
        ':('=>'<img src="/images/smile/02.gif">',
        ':babah:'=>'<img src="/images/smile/03.gif">',
        '8)'=>'<img src="/images/smile/04.gif">',
        ';)'=>'<img src="/images/smile/05.gif">',
        ':sorry:'=>'<img src="/images/smile/06.gif">'
    ));
    return $modified;
}

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

$variable = replase_smile($variable);

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

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

просмотров: 34 комментариев: 0



комментировать:
 
Ваше имя:
сайт или e-mail:
текст комментария: