2011-10-18 2 views
3

내 스타일 태그를 제거하는 HTMLPurifier에 문제가 있습니다.HTML 정수기 필터링에서 인라인 스타일 태그를 허용하는 방법

$config = HTMLPurifier_Config::createDefault(); 
$config->set('Core.Encoding', 'UTF-8'); // replace with your encoding 
$config->set('HTML.Doctype', 'HTML 4.01 Transitional'); // replace with your doctype 
$config->set('Cache.DefinitionImpl', null); 
$config->set('HTML.AllowedElements','div'); 
$config->set('HTML.AllowedAttributes', "*.style"); 
$config->set('CSS.AllowedProperties', 'background-color'); 

을 그리고 나는이 HTML을 필터링 할 때 : 이것은 내가 (테스트) 구성에 사용되는

<div>test</div> 
<div style="border:;">test</div> 

나는 이유를 이해하지 않습니다

<div style="background-color: #fff;">test</div> 
<div style="border: 1px solid #000;">test</div> 

이것은 내가 무엇을 얻을 테두리 속성은 그대로 있지만 (값은 제거됩니다) 배경색 속성이 제거 된 이유는 무엇입니까? 해당 스타일 태그가 필터를 통해 허용되도록 구성하려면 어떻게합니까? 또한 허용하는 스타일 속성에 대한 스타일 값을 허용하려고합니다.

+0

구성을 주석으로 처리하더라도 제거됩니까? –

+0

죄송합니다 - 몇 시간 동안 문제를 해결 한 후에 오류가 발견되어 HTML Purifier와 관련이 없습니다. 일단 그것을 고치면 구성 설정이 예상대로 작동했습니다. 훌륭한 도서관을 가져 주셔서 감사합니다. – Johan

답변

1

이 시도 :

$config = HTMLPurifier_Config::createDefault(); 
$config->set('Core.Encoding', 'UTF-8'); // replace with your encoding 
$config->set('HTML.Doctype', 'HTML 4.01 Transitional'); 
$config->set('CSS.Trusted', 'HTML 4.01 Transitional'); // allow any css 
$config->set('HTML.Allowed','div[style]'); 
$config->set('CSS.AllowedProperties', 'background-color'); 

이 나를 위해 작동합니다!

관련 문제