1

こんにちは、tinyMCE エディターを使用していますが、データベースからコンテンツを取得する際に問題が発生しています。

これを入力するたびに

Lorem ipsum dolor sit amet dolor amet sit dolor ipsum.
[youtube_video_here]

データベースに正常に保存されました。ただし、以下のコードを印刷する代わりにデータベースから表示しようとしたとき

<iframe ....the rest of the code

それは印刷します

&gt;iframe ...the rest of the code &lt;&gt;/iframe>

奇妙なことに、次のような他の HTML タグを出力します。

<br/> or <p>

ちゃんと。

CodeIgniter で PHP を使用してコンテンツを取得しています。

誰にもアイデアはありますか?

4

1 に答える 1

1

これを実現するにはいくつかの方法があります。すべてがうまくいくわけではないので、正しい解決策が見つかるまで試してみる必要があります。最善の方法は、コンテンツをデータベースに適切に保存することです。

バリアント 1. TinyMCE 構成。この行を追加

extended_valid_elements: "iframe[src|width|height|name|align]"

詳細はこちら: extended_valid_elements

バリアント 2. データベースに保存する前に、このパラメーターをデコードします。PHP を使用すると、次のようになります。

$content = html_entity_decode($content);

次に、データベースに保存します。

バリアント 3。クイック&ダーティ。多分私はこれから始めるべきです:)

$content = str_replace('&lt;iframe', '<iframe', $content);
$content= str_replace('&gt;&lt;/iframe>', '></iframe>', $content);
$content= str_replace('&gt;&lt;/iframe&gt;', '></iframe>', $content);

さらにお役に立てることがあればお知らせください。

于 2013-07-02T09:11:27.413 に答える