ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルの動的 HTML 出力テクノロジー

PHP_PHP チュートリアルの動的 HTML 出力テクノロジー

WBOY
WBOYオリジナル
2016-07-21 16:03:11823ブラウズ

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

tru​​e

技術記事 PHP プログラムのどこでも echo hello world! を使用して、必要な内容を出力できます。 ただし、次の問題が発生します。 1 - hello と world の間に 2 つの... を追加しようとすると
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。