#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 и не смотрел ни одно из этих «базовых» руководств