⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 required.php

📁 很棒的在线教学系统
💻 PHP
字号:
<?phprequire_once 'HTMLPurifier/ChildDef.php';/** * Definition that allows a set of elements, but disallows empty children. */class HTMLPurifier_ChildDef_Required extends HTMLPurifier_ChildDef{    /**     * Lookup table of allowed elements.     * @public     */    var $elements = array();    /**     * @param $elements List of allowed element names (lowercase).     */    function HTMLPurifier_ChildDef_Required($elements) {        if (is_string($elements)) {            $elements = str_replace(' ', '', $elements);            $elements = explode('|', $elements);        }        $keys = array_keys($elements);        if ($keys == array_keys($keys)) {            $elements = array_flip($elements);            foreach ($elements as $i => $x) {                $elements[$i] = true;                if (empty($i)) unset($elements[$i]); // remove blank            }        }        $this->elements = $elements;    }    var $allow_empty = false;    var $type = 'required';    function validateChildren($tokens_of_children, $config, &$context) {        // if there are no tokens, delete parent node        if (empty($tokens_of_children)) return false;                // the new set of children        $result = array();                // current depth into the nest        $nesting = 0;                // whether or not we're deleting a node        $is_deleting = false;                // whether or not parsed character data is allowed        // this controls whether or not we silently drop a tag        // or generate escaped HTML from it        $pcdata_allowed = isset($this->elements['#PCDATA']);                // a little sanity check to make sure it's not ALL whitespace        $all_whitespace = true;                // some configuration        $escape_invalid_children = $config->get('Core', 'EscapeInvalidChildren');                // generator        static $gen = null;        if ($gen === null) {            $gen = new HTMLPurifier_Generator();        }                foreach ($tokens_of_children as $token) {            if (!empty($token->is_whitespace)) {                $result[] = $token;                continue;            }            $all_whitespace = false; // phew, we're not talking about whitespace                        $is_child = ($nesting == 0);                        if ($token->type == 'start') {                $nesting++;            } elseif ($token->type == 'end') {                $nesting--;            }                        if ($is_child) {                $is_deleting = false;                if (!isset($this->elements[$token->name])) {                    $is_deleting = true;                    if ($pcdata_allowed && $token->type == 'text') {                        $result[] = $token;                    } elseif ($pcdata_allowed && $escape_invalid_children) {                        $result[] = new HTMLPurifier_Token_Text(                            $gen->generateFromToken($token, $config)                        );                    }                    continue;                }            }            if (!$is_deleting || ($pcdata_allowed && $token->type == 'text')) {                $result[] = $token;            } elseif ($pcdata_allowed && $escape_invalid_children) {                $result[] =                    new HTMLPurifier_Token_Text(                        $gen->generateFromToken( $token, $config )                    );            } else {                // drop silently            }        }        if (empty($result)) return false;        if ($all_whitespace) return false;        if ($tokens_of_children == $result) return true;        return $result;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -