htmlpurifier在用户输入html时返回问号?

时间:2012-05-24 21:00:57

标签: php html html5 validation htmlpurifier

  

看起来很难像需要净化的HTML代码。

为什么htmlpurifier会将该字符串变成一个问号,显然它应该是一个空格?

我的确切html净化代码是:

//purify the html input
include_once('inc/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);
}

$input = $_POST["about_me"];

# 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);
$htmlpurified_output = $filter->purify($input);

我在我的php页面标题中启用了utf8,在保存信息时也启用了mysql。

我能够写入,保存到DB,并在同一页面上的其他textareas中重新显示其他UTF8字符。罪魁祸首绝对是htmlpurifier返回问号代替实际角色。

我会回答任何其他问题。

1 个答案:

答案 0 :(得分:2)

答案是......

始终确保在所有区域正确设置编码。

我将表的“about_me”行设置为接受ascii字符。咄。

抱歉浪费每个人的时间。