2016-04-08 11 views
0

ページの生のHTMLを返すデータベースクエリがありますが、これをページ上で使用するとプレーンテキストとして表示されます(もちろん) 。どのように私はそれがタグなどを使用するようにHTMLとしてそれをフォーマットするだろう。データベースからHTMLを取得し、プレーンテキストの代わりにhtmlとしてフォーマットする

私は私のデータベースに持っているものの例:

<div class="test">SOME TEXT HERE</div> 

しかし、それはまた、そのように表示されています。 HTMLのように書式を設定したいと思います。だから、それだけで表示していました:

HERE

SOME TEXTしかし、それはまた、クラスとdiv要素になること:これに到達するための最良の方法だろう「テスト」

何ゴール?

MVCモデルでTwigを使用してページをレンダリングします。だから、ページレンダラは、この

public function renderArticle() { 
     $twig = new TwigHelper(); 
     $args['title'] = "Artikel $this->articleId"; 
     $args['blogHTML'] = BlogController::retrieveBlogHTML($this->articleId); 
     echo $twig->render('article.twig', $args); 
    } 

そして「BlogController :: retrieveBlogHTML」のようなものですが、このように書きます:

public static function retrieveBlogHTML($id) { 
    $db = DatabaseHelper::get(); 
    $st = $db->prepare("SELECT PageHTML FROM T_Blog WHERE BlogId = :BlogId"); 
    $st->execute([ 
     ':BlogId' => $id, 
    ]); 
    if ($st->errorCode() !== \PDO::ERR_NONE) { 
     return null; 
    } 
    return $st->fetchAll(); 
} 

これは私がこの時点ではJavaScriptを使用することができなくなることを意味し、それが問題を解決する唯一の方法なら、私は回避策を構築する必要があります。

私は間違って逃げ出したのか、それともそれらの行に沿ったものなのか分かりませんが、ヘッダーは使用していません。

+0

divをどのように取得しますか?アヤックス?サーバーサイドコード? – Max

+1

これはおそらく、適切なコンテンツヘッダーを設定するか、間違ってHTMLをエスケープしたかのようです。あなたは実際にあなたの現在のプロセスの詳細といくつかのコードを与えるべきです。 – GolezTrol

+0

私の遅い返事を申し訳ありませんが、私はデータを取得する方法に関するいくつかの詳細情報を私のメインポストを更新しました。 –

答えて

2

たとえば、<&lt;になるように、html文字をエスケープする必要があります。

は、JavaScriptでは、あなたは、一般的に大丈夫ですHE libraryまたはtheresのこの機能を使用することができますが、あなたの使用してPHPは、あなたがhtmlentitiesを使用することができるならば、彼のライブラリが

var encodedStr = rawStr.replace(/[\u00A0-\u9999<>\&]/gim, function(i) { 
    return '&#'+i.charCodeAt(0)+';'; 
}); 

をしていることを、すべての可能なケースをカバーしていません他の言語でも同様の機能が組み込まれているか、ライブラリを介して提供されます。

+0

この時点でJavascriptを使用してデータを取得していません。私は情報をどのように取得するのかを示すために私のメインポストを更新しました。遅い答えを申し訳ありませんbtw。 –

+0

私は小枝がオートエスケープにデフォルト設定されていると思いましたか?いずれにせよ、あなたは '{{blogHTML.PageHTML | e}}'や '{{blogHTML.PageHTML | escape}}'を使って強制的にHTMLエスケープを行うことができます。こちらをご覧ください:http://twig.sensiolabs.org/doc/filters/escape.html – Lee

関連する問題