0

以下の元のコードを新しいクラスにラップして、単純に作成$filter = new myPurifier();してから使用することは可能$output = $filter->purify($input);ですか? この投稿の最後に、私の失敗した試みが表示されます。ありがとう

元のコード:

include_once('htmlpurifier/library/HTMLPurifier.auto.php');

$config = HTMLPurifier_Config::createDefault();
$config->set('Core', 'Encoding', 'UTF-8');
$config->set('HTML', 'Doctype', 'HTML 4.01 Transitional');

if (defined('PURIFIER_CACHE')) {
    $config->set('Cache', 'SerializerPath', PURIFIER_CACHE);
} else {
    # Disable the cache entirely
    $config->set('Cache', 'DefinitionImpl', null);
}

# Help out the Purifier a bit, until it develops this functionality
while (($cleaner = preg_replace('!<(em|strong)>(\s*)</\1>!', '$2', $input)) != $input) {
    $input = $cleaner;
}

$filter = new HTMLPurifier($config);
$output = $filter->purify($input);

参照: 上記のコードはPHP - HTML Purifier - hello w<o>rld/world tutorial striptags にあります

うまくいかない私の試み:

class myhtmlpurifier extends HTMLPurifier
{
    public function __construct()
    {
        require_once VS_APPLICATION_BASE.DS.'classes_3rd/htmlpurifier-4.4.0/library/HTMLPurifier.auto.php';
        $config = HTMLPurifier_Config::createDefault();
        $config->set('Core', 'Encoding', 'UTF-8');
        $config->set('HTML', 'Doctype', 'HTML 4.01 Transitional');
        if (defined('PURIFIER_CACHE')) {
            $config->set('Cache', 'SerializerPath', PURIFIER_CACHE);
        } else {
            # Disable the cache entirely
            $config->set('Cache', 'DefinitionImpl', null);
        }

        # Help out the Purifier a bit, until it develops this functionality
        while (($cleaner = preg_replace('!<(em|strong)>(\s*)</\1>!', '$2', $input)) != $input) {
            $input = $cleaner;
        }
        $this = parent::__construct($config);
    } 
}
4

1 に答える 1