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

📄 uri.php

📁 很棒的在线教学系统
💻 PHP
字号:
<?phprequire_once 'HTMLPurifier/AttrDef.php';require_once 'HTMLPurifier/URIParser.php';require_once 'HTMLPurifier/URIScheme.php';require_once 'HTMLPurifier/URISchemeRegistry.php';require_once 'HTMLPurifier/AttrDef/URI/Host.php';require_once 'HTMLPurifier/PercentEncoder.php';require_once 'HTMLPurifier/AttrDef/URI/Email.php';// special case filtering directives HTMLPurifier_ConfigSchema::define(    'URI', 'Munge', null, 'string/null', '<p>    Munges all browsable (usually http, https and ftp)    absolute URI\'s into another URI, usually a URI redirection service.    This directive accepts a URI, formatted with a <code>%s</code> where     the url-encoded original URI should be inserted (sample:     <code>http://www.google.com/url?q=%s</code>).</p><p>    Uses for this directive:</p><ul>    <li>        Prevent PageRank leaks, while being fairly transparent         to users (you may also want to add some client side JavaScript to         override the text in the statusbar). <strong>Notice</strong>:        Many security experts believe that this form of protection does not deter spam-bots.     </li>    <li>        Redirect users to a splash page telling them they are leaving your        website. While this is poor usability practice, it is often mandated        in corporate environments.    </li></ul><p>    This directive has been available since 1.3.0.</p>');// disabling directivesHTMLPurifier_ConfigSchema::define(    'URI', 'Disable', false, 'bool', '<p>    Disables all URIs in all forms. Not sure why you\'d want to do that     (after all, the Internet\'s founded on the notion of a hyperlink).     This directive has been available since 1.3.0.</p>');HTMLPurifier_ConfigSchema::defineAlias('Attr', 'DisableURI', 'URI', 'Disable');HTMLPurifier_ConfigSchema::define(    'URI', 'DisableResources', false, 'bool', '<p>    Disables embedding resources, essentially meaning no pictures. You can     still link to them though. See %URI.DisableExternalResources for why     this might be a good idea. This directive has been available since 1.3.0.</p>');/** * Validates a URI as defined by RFC 3986. * @note Scheme-specific mechanics deferred to HTMLPurifier_URIScheme */class HTMLPurifier_AttrDef_URI extends HTMLPurifier_AttrDef{        var $parser;    var $embedsResource;        /**     * @param $embeds_resource_resource Does the URI here result in an extra HTTP request?     */    function HTMLPurifier_AttrDef_URI($embeds_resource = false) {        $this->parser = new HTMLPurifier_URIParser();        $this->embedsResource = (bool) $embeds_resource;    }        function validate($uri, $config, &$context) {                if ($config->get('URI', 'Disable')) return false;                $uri = $this->parseCDATA($uri);                // parse the URI        $uri = $this->parser->parse($uri);        if ($uri === false) return false;                // add embedded flag to context for validators        $context->register('EmbeddedURI', $this->embedsResource);                 $ok = false;        do {                        // generic validation            $result = $uri->validate($config, $context);            if (!$result) break;                        // chained filtering            $uri_def =& $config->getDefinition('URI');            $result = $uri_def->filter($uri, $config, $context);            if (!$result) break;                        // scheme-specific validation             $scheme_obj = $uri->getSchemeObj($config, $context);            if (!$scheme_obj) break;            if ($this->embedsResource && !$scheme_obj->browsable) break;            $result = $scheme_obj->validate($uri, $config, $context);            if (!$result) break;                        // survived gauntlet            $ok = true;                    } while (false);                $context->destroy('EmbeddedURI');        if (!$ok) return false;                // back to string        $result = $uri->toString();                // munge entire URI if necessary        if (            !is_null($uri->host) && // indicator for authority            !empty($scheme_obj->browsable) &&            !is_null($munge = $config->get('URI', 'Munge'))        ) {            $result = str_replace('%s', rawurlencode($result), $munge);        }                return $result;            }    }

⌨️ 快捷键说明

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