HTMLPurifier - библиотека которая позволяет очищать любой html код от всех вредоносных, невалидных, запрещенных (вашей конфигурацией) частей кода. Очень полезна для обработки пользовательского ввода. Гибка в настройке - позволяет иметь и использовать множество конфигураций.

Подробнее о библиотеке можно узнать на официальном сайте, там же можно ознакомиться с документацией по ее настройке - HTML Purifier

Я написал для HTMLPurifier обертку для более удобного использования совместно с фреймворком Laravel

Установка

composer require alexusmai/laravel-purifier

Если вы используете Laravel версии ниже чем 5.5, то вам необходимо добавить в файл конфигурации (config/app.php) сервис-провайдер

Alexusmai\LaravelPurifier\LaravelPurifierServiceProvider::class,

А также добавить алиас для фасада

'Purifier' => Alexusmai\LaravelPurifier\Facades\PurifierFacade::class,

Теперь необходимо опубликовать файл конфигурации приложения (purifier.php)

php artisan vendor:publish --provider="Alexusmai\LaravelPurifier\LaravelPurifierServiceProvider"

Использование

В файл конфигурации вы можете добавить собственные пресеты настроек фильтрации (config/purifier.php), по умолчанию используется пресет - "default"

Примеры:

// string
Purifier::clean($text);

// array
Purifier::clean(['text1', 'text2', 'text3']);

// использование функции хелпера
purifier($text);

// использование своего пресета настроек
Purifier::clean($text, 'my-settings-name');

purifier($text, 'my-settings-name');

// динамическая конфигурация
Purifier::clean($text, ['HTML.Allowed' => 'div,br,span']);

purifier($text, ['HTML.Allowed' => 'div,br,span']);