src/Biz/Util/HTMLPurifierFactory.php

(开头部分) 1KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

<?php

namespace Biz\Util;

use Biz\Common\CommonException;
use Codeages\Biz\Framework\Service\Exception\ServiceException;

class HTMLPurifierFactory
{
    protected $config;

    public function __construct($config)
    {
        $this->config = $config;
    }

    public function create($trusted = false)
    {
        if (!isset($this->config['cacheDir'])) {
            throw CommonException::ERROR_PARAMETER_MISSING();
        }
        $this->warmUp($this->config['cacheDir']);

        $config = \HTMLPurifier_Config::createDefault();
        $config->set('Cache.SerializerPath', $this->config['cacheDir']);

        if ($trusted) {
            //    $config->set('HTML.Trusted', true);
            $config->set('Filter.ExtractStyleBlocks', true);
            $config->set('Attr.EnableID', true);
            $config->set('HTML.SafeEmbed', true);
            $config->set('HTML.SafeScripting', array());
            $config->set('HTML.SafeObject', true);
            $config->set('Output.FlashCompat', true);
            $config->set('HTML.FlashAllowFullScreen', true);

            $safeIframeRegexp = $this->buildSafeIframeRegexp();
            if ($safeIframeRegexp) {
                $config->set('HTML.SafeIframe', true);
                $config->set('URI.SafeIframeRegexp', $safeIframeRegexp);
            }
        }

        $def = $config->getHTMLDefinition(true);
        $def->addAttribute('a', 'target', 'Enum#_blank,_self,_target,_top');

        return new \HTMLPurifier($config);
    }

    public function createSimple()
    {
        if (!isset($this->config['cacheDir'])) {
            throw CommonException::ERROR_PARAMETER_MISSING();
        }
        $this->warmUp($this->config['cacheDir']);

        $config = \HTMLPurifier_Config::createDefault();
        $config->set('Cache.SerializerPath', $this->config['cacheDir']);
        $config->set('HTML.Trusted', true);

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。