2

チャット ボックスがあり、' :D ' などをアイコンに置き換えたいと考えています。

$chatText = str_replace(":D","<img src='images/icons/smileys/smile-big.png' width='20' height='20' alt='Big Smile' />",$chatText);

上記は私が使用しているコードです。チャットでは、テキストを感情に置き換える代わりに、文字通り ":D" を html コードに置き換えます。

<img src='images/icons/smileys/smile-big.png' width='20' height='20' alt='Big Smile' />

次のような(調査した)変更をいくつか試みました。

$chatText = str_replace(":D", "< img src=\"/images/icons/smileys/smile-big.png\" width=\"20\" height=\"20\" alt=\"Big Smile\" />",$chatText);

私はそこで運がなかった。私の質問は、ユーザーが感情を持つことができるように、これを機能させるにはどうすればよいかということです。私のコードの一番上にもあります$chatText = htmlspecialchars($chatText, ENT_QUOTES);

4

1 に答える 1

0

コードから 100% 明確ではない、いくつかの問題が考えられます。

可能性 #1: テキストを TEXTAREA などに設定していない

テキストエリアのテキストを設定するだけの場合、ネストされた HTML はサポートされず、この方法でスマイリーを行うことはできません。これらをサポートしている gmail や facebook などは、基本的にコンテンツのレンダリングを再実装しています。

テキストを正しく設定するには、innerHTML特定の要素のプロパティを使用しdivて HTML を正しく設定する必要があります。

JQuery では、おそらく次のように記述します。

$('chat_text').html($('chat_text').html() + fixed_up_smilie_text);

可能性 #2: 使用しているhtmlspecialchars

HTML に挿入する前に を使用してテキストをエスケープするhtmlspecialcharsと、上記のように表示されます。修正は簡単です。しないでください ^_^。

于 2012-09-25T12:53:10.153 に答える