Как удалить из текста всё лишнее, и оставить только теги?

По мимо привычного
<script>Вредоносный код</script>
Пользователи могут запихнуть и такое
<div onclick="Вредоносный код"></div>
Как правильнее удалить из теста всё лишнее (js, flash, что то ещё, что может навредить пользователю) и разрешить оставить в тесте теги со стилями
Пример:
<h1>Заголовок</h1>
<div style="color:#ffffff;border: 1px solid #b6c2c9;background: #b6c2c9;">Текст</div>
<b style="color:#000000;"><i>Подпись</i></b>
  • Вопрос задан
  • 796 просмотров
Пригласить эксперта
Ответы на вопрос 1
muhammad_97
@muhammad_97
PHP-разработчик
strip_tags

<?php

$text = '<p>Параграф.</p><!-- Комментарий --> <a href="#fragment">Еще текст</a>';

// Разрешаем <p> и <a>
echo strip_tags($text, '<p><a>');


UPD.:
https://habrahabr.ru/company/smartprogress/blog/202188
htmlpurifier.org

UPD. 2:
https://github.com/imangazaliev/didom

foreach($document->find('*[onclick]') as $element) {
    $element->removeAttribute('onclick');
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы