Implement "carryover" functionality, requested by Kinderlehrer <bitweaver@7doves...
[htmlpurifier/darkodev.git] / library / HTMLPurifier.kses.php
blob24bef74a572c6ad286b8de98b1dbf9f185908d18
1 <?php
3 /**
4 * @file
5 * Emulation layer for code that used kses(), substituting in HTML Purifier.
6 */
8 require_once dirname(__FILE__) . '/HTMLPurifier.auto.php';
10 function kses($string, $allowed_html, $allowed_protocols = null) {
11 $config = HTMLPurifier_Config::createDefault();
12 $allowed_elements = array();
13 $allowed_attributes = array();
14 foreach ($allowed_html as $element => $attributes) {
15 $allowed_elements[$element] = true;
16 foreach ($attributes as $attribute => $x) {
17 $allowed_attributes["$element.$attribute"] = true;
20 $config->set('HTML', 'AllowedElements', $allowed_elements);
21 $config->set('HTML', 'AllowedAttributes', $allowed_attributes);
22 $allowed_schemes = array();
23 if ($allowed_protocols !== null) {
24 $config->set('URI', 'AllowedSchemes', $allowed_protocols);
26 $purifier = new HTMLPurifier($config);
27 return $purifier->purify($string);
30 // vim: et sw=4 sts=4