0

私は何が間違っているのかわからず、PHPの初心者であるため、私のアプローチが正しいかどうかわかりません。TinyMCE エディターを使用してテキストをデータベースに保存し、このテキストを WordPress を使用したサイトのブラウザーに表示します。

これは実際にデータベースに保存されるテキストです

<strong>Well we should think about how to see this editor</strong>
<ul>
    <li>Its Good in nature</li>
    <li>Well Matured</li>
    <li>Easy to use.</li>
</ul>
<strong><span style=\"color: #ff0000;\">We should use this editor every now and than</span></strong> <span style=\"color: #333333;\">©</span>

This is going to be a heading to test it
<h1 style=\"text-align: right;\"></h1>

このようなエンコードされたテキストで申し訳ありませんが、PHP のhtml_entity_decodeメソッドを使用してそのテキストをブラウザに送り返して表示しています。これは私の関数呼び出しです

html_entity_decode($event->Description,ENT_QUOTES,'UTF-8')

HTML出力

<font color="#cc0000">'<strong>Well we should think about how to see this editor</strong>
 <ul> 
  <li>Its Good in nature</li> 
  <li>Well Matured</li> 
  <li>Easy to use.</li> 
  </ul>
  <strong>
  <span style=\"color: #ff0000;\">We should use this editor every now and than</span></strong> 
  <span style=\"color: #333333;\">©</span> 
  This is going to be a heading to test it 
  <h1 style=\"text-align: right;\"></h1>'</font>

色情報以外はすべて整っているようです。生成された HTML 出力で色が機能しません。

私が間違っている場所を理解するのを手伝ってくれる人はいますか

4

2 に答える 2

2

これはおそらく、保存するためにデータがエンコードされている方法です。

htmlentities( addslashes($string) );

正確な出力を取り戻すには、次のstripslashes関数を使用してスラッシュを削除する必要があります。

stripslashes( html_entity_decode($event->Description, ENT_QUOTES, 'UTF-8') );
于 2012-12-02T11:35:49.580 に答える
0

一見すると、HTML コードで二重引用符がエスケープされていることがわかります。彼らはすべきではありません。バックスラッシュを削除してみてください。このような:

  <span style="color: #ff0000">We should use this editor every now and than</span></strong> 
  <span style="color: #333333">©</span> 

で試しhtml_entity_decode()てくださいENT_NOQUOTES

于 2012-12-02T07:31:11.480 に答える