1

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

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

4

2 に答える 2

0

PHPでは、関数htmlspecialchars( http://php.net/manual/en/function.htmlspecialchars.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);
?>
于 2010-06-08T02:07:27.117 に答える
0

あなたが話しているのはHTMLエンコーディングと呼ばれています。現代のすべての言語には、PHPのhtmlspecialchars関数など、それを行うための機能がライブラリにあります。PHPの詳細については、このSOの質問を参照してください。

また、HTMLデコードの複数のラウンドに対しても、入力を適切にサニタイズしていることを確認する必要があります。そうしないと、CSS(クロスサイトスクリプティング)攻撃の影響を受けやすくなります。

于 2010-06-08T02:13:20.920 に答える