2017-12-06 6 views
1

ゴール

である私は、ユーザーが記述にマークダウンまたはHTMLとして入力されたリンクを表示しようとしています。説明はデータベースに保存され、読み込みが終わるとリテラルマークアップ/マークダウンではなくリンクとして表示するために解析します。結果は文字列ではなく、有効な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')); 

現在出力は文字通りです:クロームdevのツールから"A link <a href="https://url.com">my link</a>"

enter image description here

スクリーンショット

答えて

2

私はエンコーディングが浄化装置の内部で変更されたと思います...唯一の推測私はそれを使ったことがないので。私はhtml_entity_decode()を使用し、

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

をバックに有効なマークアップを取得するには:

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

printf("<br />%s<br />", html_entity_decode($purifier->purify($subrow['description']))); 
を試してみて、その助けをい、私は次のようにあなたの結果を模倣することができましたか?

+0

そうです、それはそれを解決しました。乾杯! –

関連する問題