PHP - HTML Purifier - hello w <o> rld/world tutorial striptags

JW.*_*JW. 16 php validation sanitization user-input

我只是想研究使用HTML Purifier来确保用户输入的字符串(代表一个人的名字)被清理.

我不想允许任何html标签,脚本,标记等 - 我只想要alpha,数字和普通的标点字符.

可用于HTML Purifier的大量选项令人生畏,据我所知,文档似乎没有开始/中间或结束

见:http://htmlpurifier.org/docs

HTML Purifier是否有一个简单的hello world教程,它显示了如何清除字符串,从中删除所有不良内容.

我也在考虑使用条带标签:

或PHP在内置数据清理中

esw*_*ald 9

我一直在使用HTMLPurifier来清理富文本编辑器的输出,最后得到:

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);
Run Code Online (Sandbox Code Playgroud)

主要观点:

  1. 包括自动加载器.
  2. 创建HTMLPurifier_Configas 的实例$config.
  3. 根据需要设置配置设置$config->set().
  4. 创建一个实例HTMLPurifier,传递$config给它.
  5. 用于$filter->purify()您的输入.

但是,对于不需要在输出中允许任何HTML的内容来说,这完全是过分的.