1

次のPHPコードを使用してユーザー入力をエスケープしていますが、&、#、; これらは他の特殊文字のコードでも使用されているため、エスケープすることはできません。これが私のコードです

>$data = preg_replace("/</", "&lt;", $data);
>$data = preg_replace("/>/", "&gt;", $data);
>$data = preg_replace("/\"/", "&quot;", $data);
>$data = preg_replace("/\(/", "&#40;", $data);
>$data = preg_replace("/\)/", "&#41;", $data);
>$data = preg_replace("/'/", "&#39;", $data);
>$data = preg_replace("/{/", "&#123;", $data);
>$data = preg_replace("/}/", "&#125;", $data);
>$data = preg_replace("/\`/", "&#96;", $data);//tick mark
>$data = preg_replace("/\[/", "&#91;", $data);
>$data = preg_replace("/\]/", "&#93;", $data);
>$data = preg_replace("/\=/", "&#61;", $data);

だから、脱出する方法を教えてくれませんか&、#そして; コードの残りの部分を邪魔することなく。あなたが私を関連するポストに導くことができるかどうか、これは何度も尋ねられたに違いありません。また、いくつかのfirendがエスケープするための独自のコード/モジュール/クラスを作成した場合、それは本当にクールになります

4

1 に答える 1

3

を使用することhtmlentites()をお勧めします。これにより、すべての作業が行われます。

$data = htmlentities($data, ENT_QUOTES);

ドキュメントはこちら

于 2012-07-22T13:58:10.393 に答える