Это довольно простая цель - фактически вам нужно проверить что-либо, что НЕ является тегом из списка белых списков и удалять их из источника. Это можно сделать довольно просто с одним регулярным выражением.
function sanitize($html) {
$whitelist = array(
'b', 'i', 'u', 'strong', 'em', 'a'
);
return preg_replace("/<(^".implode("|", $whitelist).")(.*)>(.*)<\/(^".implode("|", $whitelist).")>/", "", $html);
}
Я не тестировал это, и там, вероятно, есть ошибка где-то, но вы получаете суть того, как это работает. Вы также можете посмотреть на язык форматирования, такой как Textile или Markdown.
Jamie
Моя ошибка, это было решено путем изменения именованного кортежа Transition для включения дополнительных входных данных. Любая информация о множественном вводе по-прежнему приветствуется.