mmv / purifier
Parsing html5 to an array of entities and back
1.0.0
2020-12-01 23:51 UTC
Requires
- php: ^7.4.12|^8.0
- masterminds/html5: ^2.7
Requires (Dev)
- phpunit/phpunit: ^8.5.8|^9.3.3
This package is not auto-updated.
Last update: 2024-05-16 14:47:17 UTC
README
Usage
Base
<?php
use MMV\Parser\Purifier\Html5;
use MMV\Parser\Purifier\Types\AllowAttr;
use MMV\Parser\Purifier\Types\Allow;
$filters = [
new Allow('a', [ new AllowAttr('href') ]),
new Allow('img', [ new AllowAttr('src') ]),
new Allow('div'),
new Allow('br'),
];
$str = <<< 'HERE'
<div style="font-size:100px;">
<p>
<a href="url link">Link</a><br>
<img src="url link">
</p>
</div>
HERE;
$arr = Html5::purifier($str, $filters);
var_dump(Html5::toHtml($arr));
/*
<div>
<a href="url+link">Link</a><br>
<img src="url+link">
</div>
Get error
<?php
use MMV\Parser\Purifier\PurifierException;
function validHtml(string $str, $filters, $flags): array {
try {
Html5::purifier($str, $filters, $flags);
return [];
} catch (PurifierException $e) {
return [ $e->getMessage() . (count($e->parameters) ? '|'.implode(',', $e->parameters) : '') ];
}
}
var_dump(validHtml('<p>test</p>', $filters, Html5::ShowErrors));
// Tag don't allowed|p
Settings
<?php
$flags = Html5::ShowErrors |
Html5::CommentsAllowed |
Html5::BadTagToText |
Html5::BadAttrToText;
Html5::purifier($str, $filters, $flags);
License
MIT