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を使用しませんが、セキュリティや圧縮などにはうまく機能しています。大文字と小文字を区別するために、いくつかの(背景画像など)ファイルパスもホストしています。私は問題を根本から修正することはできません (つまり、すべてを小文字にすることはできません) ... そのため、私が行った方法で質問します。おそらく構成設定?(私は願っています) ...私は探していましたが、まだトリックを行う人を見つけていません。
更新: nickb が指摘するように、CSStidy にはこれを制御する可能性のある構成オプションがあるため、問題は次のようになります: HTMLpurifier のコンテキストでそのオプションを FALSE に設定するにはどうすればよいですか?
それとも、その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;
}