2017-12-06 38 views
1

목표

사용자가 설명에 markdown 또는 html로 입력 한 링크를 표시하려고합니다. 설명은 데이터베이스에 저장되고 읽기가 끝나면 리터럴 마크 업/마크 다운 대신 링크로 표시하기 위해 구문 분석을 시도합니다.PHP markdown 파서의 결과는 유효한 HTML이 아닌 문자열입니다.

문제

나는 데이터베이스에 저장된 인하를 구문 분석 HTML Purifier을 사용하고 있습니다. 파서를 통해 문자열을 실행할 때 페이지의 결과는 유효한 HTML이 아니며 문자열 대신 올바른 HTML이됩니다.

$config = HTMLPurifier_Config::createDefault(); 
$config->set('HTML.Allowed', 'a[href]'); 
$config->set('AutoFormat.Linkify', true); 
$config->set('HTML.TargetBlank', true); 
$config->set('HTML.TargetNoreferrer', true); 

//My database result 
$subrow['description']; 

$purifier = new HTMLPurifier($config); 
printf("<br />%s<br />", $purifier->purify($subrow['description')); 

현재 출력은 그대로입니다 :

답변

2

내가 인코딩 정수기의 내부 변경 생각 크롬 개발 도구에서 "A link <a href="https://url.com">my link</a>"

enter image description here

스크린 샷 ... 단지 추측 나는 결코 그것을 사용하지 않았다.

printf('<br />%s<br />', html_entity_decode($test)); 

printf("<br />%s<br />", html_entity_decode($purifier->purify($subrow['description']))); 

가 도움이됩니까보십시오 :

$test = htmlentities("A link <a href=\"https://url.com/my link\">mylink</a>"); 
printf('<br />%s<br />', $test); 

내가 html_entity_decode()을 사용, 다시 유효한 마크 업을 얻으려면 : 나는 다음과 결과를 모방 할 수 있었다?

+0

그래, 그게 해결책이야. 건배! –