HTMLPurifier преобразует › в

Я использую HTMLPurifier с текстовой областью ввода, где пользователям разрешено помещать свой HTML-тег. Конфиг по умолчанию:

        $config = HTMLPurifier_Config::createDefault();
        $purifier = new HTMLPurifier($config);
        $_POST['txt'] = $purifier->purify($_POST['txt']);

Проблема, с которой я сталкиваюсь, заключается в том, что пользователи помещают в текст >, например:

<p>Some text > other text </p>

Это преобразуется в:

<p>Some text &gt; other text </p>

Есть ли способ остановить это преобразование? Не забывая:

$_POST['txt'] = str_replace('&gt;','>',$_POST['txt']);

person Community    schedule 21.12.2012    source источник
comment
Если это преобразование не произойдет, HTML будет недействительным. Если это то, что вы хотите, для этого может быть опция конфигурации.   -  person Michael Mior    schedule 21.12.2012
comment
@MichaelMior: ваш комментарий может быть ответом   -  person    schedule 21.12.2012
comment
@latink Опубликовано как ответ на случай, если это решит вашу проблему :)   -  person Michael Mior    schedule 21.12.2012


Ответы (2)


Если это преобразование не произойдет, HTML будет недействительным. Если это то, что вы хотите, для этого может быть опция конфигурации.

person Michael Mior    schedule 21.12.2012

как вы, наверное, знаете, &gt; специальный символ html для >. Браузер отобразит все правильно.

Вы можете попробовать использовать htmlspecialchars_decode для декодирования всех специальных символов в исходные значения.

person Alex    schedule 21.12.2012