Есть ли способ остановить HTMLPurifier/CSStidy от принудительного ввода CSS во все строчные буквы?
Используя PHP/Codeigniter/HTMLPurifier/CSStidy примерно так:
require_once 'extra/htmlpurifier-4_4_0/library/HTMLPurifier.auto.php';
require_once 'extra/csstidy-1_3/class.csstidy.php';
$input_css = $this->input->post('input_css');
$config = HTMLPurifier_Config::createDefault();
$config->set('Filter.ExtractStyleBlocks', TRUE);
// Create a new purifier instance
$purifier = new HTMLPurifier($config);
// Wrap our CSS in style tags and pass to purifier.
// we're not actually interested in the html response though
$html = $purifier->purify('<style>'.$input_css.'</style>');
// The "style" blocks are stored seperately
$output_css = $purifier->context->get('StyleBlocks');
// Get the first style block
$unClean_css = $input_css;
$clean_css = $output_css[0];
... есть ли способ отключить то, что внутри HTMLPurifier или CSStidy, что вызывает $clean_css
быть вынуждены в нижнем регистре? Мне нужно, чтобы вывод оставался один, с точки зрения случая. Я бы просто не использовал CSStidy, но он отлично работает для обеспечения безопасности и сжатия и т. Д., Просто также скрывает некоторые (например, background-image) пути к файлам из-за чувствительности к регистру. Я не могу решить проблему с нуля (то есть я не могу просто форсировать все строчные буквы)... поэтому я задаю вопрос так, как я это сделал. Конфиг настройки возможно? (Надеюсь)... Я искал, но пока не вижу того, кто бы справился.
Обновление: как указывает ник, в CSStidy есть опция config, которая может это контролировать, поэтому возникает вопрос: как установить для этой опции значение FALSE в контексте HTMLpurifier?
Или это lowercase_s
Вариант конфигурации CSSTidy даже виновник? Я не знаю, потому что я до сих пор не могу остановить нижний регистр так или иначе. Я хочу, например, такой ввод, как так:
.zzzzzz {
background:transparent url("images/tmpl_Btn1_CSSdemo.jpg") no-repeat right top;
}
... НЕ стал бы (как сейчас)
.zzzzzz {
background:transparent url("images/tmpl_btn1_cssdemo.jpg") no-repeat right top;
}
2 ответа
На самом деле, это ошибка HTML Purifier, а не ошибка CSS Tidy. Я работаю над исправлением.
Пожалуйста, примените этот патч: http://repo.or.cz/w/htmlpurifier.git/commit/f38fca32a9bad0952df221f8664ee2ab13978504 (действительно необходимы только патчи для файла в библиотеке /)
Вам нужно установить lowercase_s
Опция конфигурации CSSTidy для false
, В противном случае он будет содержать строчные буквы всех ваших селекторов для включения в XHTML.