PHP プログラムのどこでも
echo "hello world!";
を使用して、出力したいものを出力できます。
しかし、次の問題に遭遇します:
1 -
hello と world の間に 2 つ (またはそれ以上) のスペースを追加しようとすると、
を使用します:
echo "hello world!"
出力は次のようになります。スペースのまま、または行の先頭にスペースを追加すると、
スペースも無視されます。
2 -
さらに悪いことに、ユーザーが入力したコンテンツを出力する場合、意図的または非意図的なユーザー入力により、
出力が混乱し、他のユーザーに迷惑をかけることさえあります。
例:
ユーザー入力に複数行のコンテンツがある場合、単に
echo $in_txt; を実行すると、ユーザーの改行は無視されます。
3 -
上記の例でも、ほとんどの場合、ユーザーが HTML
コードを入力することは望ましくありません。ユーザーが何を入力するかわからないからです。
ユーザーは、Web サイトのすべてのユーザーをクラッシュさせるコードを作成することもできます。
もちろんそれは望ましくありませんが、単純に
$in_txt をエコーするだけではそれを避けることはできません。
解決策:
1 の場合、 ereg_replace(" {2}","$nbsp; ",$in_txt) を使用できます。
2 つのスペースを一緒にすると、2 つのスペース ($nbsp ) のエスケープ文字になります。
2 の場合、nl2br($in_txt) が最良の選択であるため、すべての改行は
"
" に置き換えられます。
3、ユーザーが入力したhtmlコードを安全に表示するには、phpにも専用の関数があります。
htmlspecialchars($in_txt) で十分です。
さらに、$in_txt を mysql データベースから抽出する場合、その前に挿入するときに addslashes() を使用する必要があり、それに応じて、取り出すときにstripslashes() を使用する必要があります。
概要:
$in_txt がユーザーによって入力されたテキストである場合、通常は次のように出力できます:
echo ereg_replace(" {2}"," ",nl2br(htmlspecialchars(stripslashes($in_txt))));
http://www.bkjia.com/PHPjc/316285.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/316285.html技術記事 PHP プログラムのどこでも echo hello world! を使用して、必要な内容を出力できます。 ただし、次の問題が発生します。 1 - hello と world の間に 2 つの... を追加しようとすると