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