1
내가 얻을 수있는 방법에서HTMLPurifier : 자동 BR
<p>first<br>p</p>
<p>second p</p>
:
<p>first
p</p>
<p>second p</p>
이 HTMLPurifier를 사용하고 계십니까?
내가 얻을 수있는 방법에서HTMLPurifier : 자동 BR
<p>first<br>p</p>
<p>second p</p>
:
<p>first
p</p>
<p>second p</p>
이 HTMLPurifier를 사용하고 계십니까?
나는 세부 사항에 대해 잘 모르겠지만,이 질문에는 대답이 없기 때문에이 포인터가 당신을 도와 주면, 참조 : 당신이 정말 HTML 정수기와 함께이 문제를 해결에 설정하는 경우
하면, 당신은 할 수 있습니다를 HTMLPurifier_AttrDef_Text
을 확장하는 클래스를 작성하여 nl2br
또는 str_replace
을 수행하는 텍스트 노드 변환을 작성하십시오. 의사 코드 :
class HTMLPurifier_AttrDef_Text_Linebreaks extends HTMLPurifier_AttrDef_Text
{
public function validate($string, $config, $context) {
$string = parent::validate($string, $config, $context);
return str_replace("\n", "<br />", $string);
}
}
은 그럼 당신은 HTML 정수기로 클래스를 주입하는 것 :
$purifier->set('HTML.DefinitionID', 'aNameForYourDefinition');
$purifier->set('HTML.DefinitionRev', 1);
//$purifier->set('Cache.DefinitionImpl', null);
$htmlDef = $purifier->config->getHTMLDefinition();
$htmlDef->manager->attrTypes->set(
'Text',
new HTMLPurifier_AttrDef_Text_Linebreaks()
);
주의 사항을 :
htmlspecialchars()
이 (가 제정신 것 일 수있는 텍스트, 정말). 그렇다면 당신은 그 접근법에 운이 없게됩니다. 대신 <br />
노드를 삽입하는 방법을 찾아야합니다.HTMLPurifier_AttrDef_Text
인스턴스를 사용하고 있습니다.그게 도움이되는지 확인해보십시오.
HTML 정수기 포럼에 스레드가 있습니다 (시작 했습니까? 놀랄 일이 아닙니다) - nl2br, auto <br /> insertion
. 해결책을 찾으면 거기에 답변을 게시 할 수 있습니다.