Как исправить эту небольшую ошибку отображения смайликов в чате и замены ругательств звездочками в чате?

#php #parsing

#php #синтаксический анализ

Вопрос:

Привет всем, итак, у меня есть окно чата для моего сайта, и в нем уже была встроенная функция смайликов, однако не было «фильтра проклятий», поэтому я решил, что попробую добавить это сегодня. Это вывод окна чата:

 $return .= "<div style="font-size: 14px; padding-bottom: 3px; color: #444444;">". $time     . $icon . $username . str_replace('"', "'", parse_bbcode(smiley(str_replace("n", '',     $chat['text'])))) ."</div>";
  

Ближе к концу этого он показывает:

 str_replace('"', "'", parse_bbcode(smiley(str_replace("n", '',     $chat['text']))))
  

Я заменил смайлик на curses, просто чтобы проверить это, и функция curses работает отлично, но мне интересно, как я могу отобразить обе функции smiley И curses, а не только одну или другую.

Я пробовал:

 parse_bbcode(smiley, curses
parse_bbcode(smiley . curses
  

но не повезло….

Вот моя функция parse_bbcode:

 function parse_bbcode($text, $xhtml = true) {
        $tags = array(
                '#[b](.*?)[/b]#si' => ($xhtml ? '<strong>\1</strong>' : '<b>\1</b>'),
                '#[i](.*?)[/i]#si' => ($xhtml ? '<em>\1</em>' : '<i>\1</i>'),
                '#[u](.*?)[/u]#si' => ($xhtml ? '<span style="text-decoration: underline;">\1</span>' : '<u>\1</u>'),
                '#[s](.*?)[/s]#si' => ($xhtml ? '<strike>\1</strike>' : '<s>\1</s>'),
                '#[color=(.*?)](.*?)[/color]#si' => ($xhtml ? '<span style="color: \1;">\2</span>' : '<font color="\1">\2</font>'),
                '#[img](.*?)[/img]#si' => ($xhtml ? '<img src="\1" border="0" alt="" style="max-width: 400px; max-height: 200px;" />' : '<img src="\1" border="0" alt="">'),
                '#[url=(.*?)](.*?)[/url]#si' => '<a href="\1" target="_blank" style="color: #000000; font-size: 12px;" title="\2">\2</a>',
                '#[email](.*?)[/email]#si' => '<a href="mailto:\1" title="Email \1">\1</a>',
                '#[code](.*?)[/code]#si' => '<code>\1</code>',
                '#[align=(.*?)](.*?)[/align]#si' => ($xhtml ? '<div style="text-align: \1;">\2</div>' : '<div align="\1">\2</div>'),
                '#[br]#si' => ($xhtml ? '<br style="clear: both;" />' : '<br>'),
        );

        foreach ($tags AS $search => $replace) {
                $text = preg_replace($search, $replace, $text);
        }

        return $text;
}
  

Комментарии:

1. Мне нужно знать: вы создали свой собственный фильтр ругательств или использовали уже существующую библиотеку?

Ответ №1:

О боже…

 ... parse_bbcode(curses(smiley(...
  

Комментарии:

1. спасибо, извините, я в значительной степени только начинаю с PHP и не смотрел ни одно из этих «базовых» руководств