2012-06-01 4 views
0

과 같이 PHP/CodeIgniter의/HTMLPurifier/CSStidy 사용 :HTMLPurifier/CSStidy가 입력 CSS를 모두 소문자로 만들지 않도록하는 방법이 있습니까?

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]; 

... 소문자로 강제로 $clean_css의 원인이 HTMLPurifier 또는 CSStidy 내부에 어떤 OFF 설정하는 방법은 무엇입니까? 나는 결과를 사건의 관점에서 혼자 남겨 둘 필요가있다. CSStidy를 사용하지는 않겠지 만 보안 및 압축 등을 위해 매우 효과적입니다. 대소 문자를 구분하여 파일 경로와 같은 일부 파일을 배치하는 것뿐입니다. 문제를 처음부터 해결할 수는 없습니다 (즉, 모든 소문자를 강제 적용 할 수는 없습니다) ... 그래서 내가했던 방식대로 질문합니다. 아마도 구성 설정? (나는 희망한다). .. 나는보고있다. 그러나 아직 트릭을 할 사람이 보이지 않는다.

업데이트 : 어떻게 HTMLpurifier의 맥락에서 FALSE에 해당 옵션을 설정하려면 : nickb가 지적 하듯,이를 제어 할 수 CSStidy의 설정 옵션 그래서 다음 질문은되고, 거기?

또는 lowercase_s CSSTidy 구성 옵션까지도 그렇습니까? 내가 지금까지 하향 케이싱을 어느쪽으로 든 멈추게 할 수 없기 때문에 나는 모른다. (지금하고있는대로)

.zzzzzz { 
    background:transparent url("images/tmpl_Btn1_CSSdemo.jpg") no-repeat right top; 
} 

이 ... 가되지 것 : I 입력과 같이 있음을 예를 들어 원하는

.zzzzzz { 
    background:transparent url("images/tmpl_btn1_cssdemo.jpg") no-repeat right top; 
} 

답변

1

당신은 falselowercase_s CSSTidy 구성 옵션을 설정해야합니다 . 그렇지 않으면 XHTML에 포함시키기 위해 모든 선택기를 소문자로 처리합니다.

+1

음을, 즉 CSS 단정 한의 바보입니다. 어쩌면 우리는 그 기본값을 변경해야 할 것입니다. –

+0

어디입니까? 필자는 명령 행에서 CSStidy를 실행하는 방법을 보여주는 문서를 계속 작성하고 있습니다 ... PHP 런타임에서 CSSTidy 구성 옵션을 설정하기위한 예제가 필요합니다. – govinda

+0

이 파일은 http://csstidy.sourceforge.net/usage.php에 있지만 CSStidy 구성 설정 방법은 나와 있지 않습니다. HTMLpurifier * – govinda