HTML5 element definitions for HTMLPurifier
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.editorconfig Add .editorconfig file Feb 6, 2018
composer.json Add keywords to composer.json Sep 20, 2018
phpunit.xml.dist Setup integration (#22) Jun 17, 2018

HTML5 Definitions for HTML Purifier

Build Status Coverage Status Latest Stable Version Total Downloads License

This library provides HTML5 element definitions for HTMLPurifier.


Install with Composer by running the following command:

composer require xemlock/htmlpurifier-html5


The most basic usage is similar to the original HTML Purifier. Create a HTML5-compatible config using HTMLPurifier_HTML5Config::createDefault() factory method, and then pass it to an HTMLPurifier instance:

$config = HTMLPurifier_HTML5Config::createDefault();
$purifier = new HTMLPurifier($config);
$clean_html5 = $purifier->purify($dirty_html5);

To modify the config you can either instantiate the config with a configuration array passed to HTMLPurifier_HTML5Config::create(), or by calling set method on an already existing config instance.

For example, to allow IFRAMEs with Youtube videos you can do the following:

$config = HTMLPurifier_HTML5Config::create(array(
  'HTML.SafeIframe' => true,
  'URI.SafeIframeRegexp' => '%^//www\.youtube\.com/embed/%',

or equivalently:

$config = HTMLPurifier_HTML5Config::createDefault();
$config->set('HTML.SafeIframe', true);
$config->set('URI.SafeIframeRegexp', '#^//www\.youtube\.com/embed/#');

Supported HTML5 elements

Aside from HTML elements supported originally by HTML Purifier, this library adds support for the following HTML5 elements:

article, aside, audio, details, figcaption, figure, footer, header, hgroup, main, nav, picture, progress, section, source, summary, time, track, video

Elements not (yet) supported



The MIT License (MIT). See the LICENSE file.