記事内に間違っている点や不明瞭な点がありましたらご指摘ください~~~
PHPの文字列エスケープに関する設定と関数は以下の通りです:
1.magic_quotes_runtime
2.magic_quotes_gpc
3.addslashes() とtripslashes()
4.mysql_escape_string()
5.addcslashes() およびstripcslashes()
6.htmlentities() および html_entity_decode()
7.htmlspecialchars() および htmlspecialchars_decode()
magic_quotes_runtime がオンになっている場合、ほとんどの php 関数が自動的に追加されます外部からインポートされたデータ (データベースやファイルを含む) 内の文字がオーバーフローする場合は、バックスラッシュを使用します。
set_magic_quotes_runtime() と get_magic_quotes_runtime() を使用してステータスを設定および検出できます。
注: これら 2 つの関数は PHP 5.3.0 以降では廃止されました。つまり、このオプションは PHP 5.3.0 以降ではオフになっています。
magic_quotes_gpc は、GPC によって送信されるデータ (GET、POST、COOKIE) 内の特定の文字を自動的にエスケープするかどうかを設定します。
get_magic_quotes_gpc() を使用してその設定を検出できます。
この設定がオンになっていない場合は、addslashes() 関数を使用して文字列を追加およびエスケープできます
addslashes() 指定した定義済み文字の前にバックスラッシュを追加します。
定義済みの文字には、一重引用符 (')、二重引用符 (")、バックスラッシュ ()、および NUL (NULL 文字) が含まれます。
上記は W3SCHOOL.COM.CN による説明です。正確です
なぜなら、magic_quotes_sybase=on の場合、一重引用符 (') を二重引用符 (") に変換します。 magic_quotes_sybase=off の場合、一重引用符 (') を (') に変換します。
stripslashes() 関数の関数は、次の関数とまったく逆です。 addedlashes() 、その機能はエスケープ効果を削除することです。
mysql_escape_string() は、SQL ステートメントで使用される文字列内の特殊文字をエスケープします。
ここでの特別なものには、(x00)、(n)、(r)、()、( ')、(")、(x1a) が含まれます
addcslashes() C 言語形式でバックスラッシュでエスケープされた文字列を使用します の文字、これこの関数が使用されることはほとんどありませんが、文字 0、a、b、f、n、r、t、v をエスケープすることを選択すると、それらは次のように変換されます。
>> XSS の脆弱性を防ぐために、ユーザーの入力または出力中に HTML エンティティのエスケープを使用してください。
今日、ファイル内の特殊文字の処理で問題が発生しました。php で次のような問題が発生しました。
* 区切り文字として一重引用符を含む PHP 文字列は 2 つのエスケープをサポートします。次のエスケープをサポートします:
n 改行 (LF または ASCII 文字 0x0A (10))
r 復帰 (CR または ASCII 文字 0x0D (13))
t 水平タブ (HT または ASCII 文字 0x09 (9))
\ Anti -slanted
$ $ USD
[0-7] {1,3} この正規表現シーケンスは、八角形の記号で表される文字と一致します
[ 0-9A-Fa-f]{1,2}この正規表現シーケンスは、16 進表記で表される文字と一致します
いくつかの例:
A には以下が含まれます
http://www.bkjia.com/PHPjc/318181.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/318181.html
技術記事
記事内に間違っている点や不明瞭な点がありましたらご指摘ください~~~ PHPの文字列エスケープに関する設定と機能は以下の通りです: 1.magic_quotes_runtime 2.magic_quotes_gpc...