質問

SQLのテキストフィールドに保存されているHTML文字コードを、適切な文字としてレンダリングせずにテキストレアに表示することは可能ですか?私は&(テーブルに保存されている方法)として現れませんでした。それとも、彼らがHTMLを保存する方法なので、これについて心配する必要はありませんか?

(サイトはPHPを使用しています)

役に立ちましたか?

解決

PHPでは、関数htmlspecialcharsを使用できます( http://php.net/manual/en/function.htmlspecialchar.php ):

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new;
?>

そしてそれはレンダリングします:

&lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;

それらをデコードしたい場合は、関数htmlspecialchars_decodeを使用するだけです

<?php
$str = '<p>this -&gt; &quot;</p>';

echo htmlspecialchars_decode($str);

// note that here the quotes aren't converted
echo htmlspecialchars_decode($str, ENT_NOQUOTES);
?>

他のヒント

あなたが話していることは、HTMLエンコードと呼ばれます。すべての現代言語には、PHPのHTMLSPECIALCHARS機能など、そのためのライブラリに施設があります。 PHP情報については、参照してください これはとても質問です.

また、入力を適切に消毒していることを確認する必要があります 複数のラウンド HTMLデコードの;それ以外の場合は、影響を受けやすくなります CSS (クロスサイトスクリプト)攻撃。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top