PHP文字変換関連関数小結(phpでの変換文字列)

3225 ワード

文章の中に不正確なところやはっきりしないところがありますので、ご指摘をお願いします。~PHP文字列の変換に関する配置と関数は以下の通りです。1.magic_quot tesruntime 2.magic_quot tesgpc 3.addslashes()とstrippslashes()4.mysql_エスケープstring()5.adcslashes()とstricslashes()6.httmlentities()とhtml_entity_decode()7.httmlspecialchars()とhttmlspecialchars_decode()がmagic_であるquot tesruntimeが開くと、phpの大部分の関数は外部から導入された(データベースまたはファイルを含む)データ中のオーバーフロー文字に逆斜線を自動的に与える。set_が使えますmagic_quot tesruntime()とget_magic_quot tesruntime()›設定とその状態を検出します。注意:PHP 5.3.0以上のバージョンはこの2つの関数を廃棄しました。つまりPHP 5.3.0以上のバージョンではこのオプションはすでに終了しました。›magic_quot tesgpc設定は自動的にGPC(GET,POST,COOKIE)から送られてきたデータの一部の文字に変換するかどうか、get_を使用することができます。magic_quot tesgpc()はその設定を検出します。この設定が開かれていない場合は、アドレスアスス()関数を使用して文字列に追加して変換することができます。指定された事前定義文字の前にバックスラッシュを追加します。予め定義された文字は、シングルクォーテーション(')、ダブルクォーテーション(')、バックスラッシュ(\)とNUL(NULL文字)を含む。以上はW 3 SCHOOL.OM.C.Nの説明ですが、直感的には正確ではないです。quot tessybase=on時にシングル引用符(')をダブル引用符(')に変換します。magic_quot tessybase=offの時にシングルクォーテーションマーク(')を(\')strippslashes()関数に変換する機能はaddslashes()›とは正反対で、その機能は意味を取り除く効果です。mysqlエスケープstring()変換SQL文で使用する文字列の特殊文字。ここの特殊なものは(\x 00)、(\)、(\r)、(\)、(')、(\)、(\\x 1 a)addcslashes()、(8205)を含み、C言語スタイルで反斜線変換文字列の文字を使用する場合、この関数はあまり使われないが、文字を0、a、b、f、n、r、vに変換するときに注意すべきである。r,\tと\vです。PHPでは、\0(NULL)、\r(車のリターン)、(改行符)、および\t(タブ)だけが予め定義されている変換シーケンスであり、C言語では、上述したすべての変換後の文字は所定の変換シーケンスである。同じstrippcslashesの機能は、その意味を取り除くことです。httmlentitiesは文字をHTMLエンティティに変換します。HTML本体とは?自分のGOOGLEを見てください。具体的なパラメータはここにあります。その逆の関数)_entity_decode()-›はHTMLエンティティを文字に変換します。htmlspecialchars関数は、予め定義されたいくつかの文字をHTMLエンティティに変換します。これらの予め定義されている文字は「(和号)が「(ダブル引用符)になる」ということです。「((より小さい)が<>(より大きい)になる」という詳細なパラメータはここに参照してください。その逆関数はhttmlspecialchars(u)です。decode()は予め定義されているHTMLエンティティの一部を文字に変換します。いくつかの引用符の意味でデータベースの安全問題を引き起こす可能性があります。エスケープstringで変換しますので、ユーザー入力を取得する際に転送することをお勧めします。magic_quot tesruntime()𔎉在PHP 5.3.0和以后版本已廃弃了,以前のバージョンは統一配置クローズを提案しています。
 
if(phpversion() < '5.3.0') {
set_magic_quotes_runtime(0);
}
̴>>関数でmagic_を定義することができません。quot tesgpcは、サーバー上で統一的にオープンすることを提案しています。プログラムを書く時は、GPCを開いていないことによるセキュリティ問題を回避し、addslashesを通じてGPCを転送する時は、ユーザーが配列データを提出する時にキー値のフィルタ
 
if(!get_magic_quotes_gpc()) {
$_GET = daddslashes($_GET);
$_POST = daddslashes($_POST);
$_COOKIE = daddslashes($_COOKIE);
$_FILES = daddslashes($_FILES);
}
function daddslashes($string, $force = 1) {
if(is_array($string)) {
foreach($string as $key => $val) {
unset($string[$key]);
$string[addslashes($key)] = daddslashes($val, $force);
}
} else {
$string = addslashes($string);
}
return $string;
}
°>利用がユーザー入力や出力時にHTMLエンティティを変換してXSSホールの発生を防ぐように注意してください。今日はファイルの特殊文字を扱うことになりました。改めてこの問題に気づきました。 シングル引用符をデリミタとするphp文字列は、2つの転送\'と\*をサポートします。 二重引用符をデリミタとするphp文字列は、以下の転送をサポートします。     改行(LF または ASCII 文字 0 x 0 A(10)      \r 回車(CR または ASCII 文字 0 x 0 D(13)      \t 水平タブ(HT) または ASCII 文字 0 x 09(9)      \\ バックスラッシュ      \$ ドル記号      \" 二重引用符      \[0-7"{1,3}               この正規表現は8進数記号で表される文字にマッチします。       \x[0-9 A-Fa-f]{1,2}  この正規表現は16進数記号で表される文字にマッチします。   いくつかの例を挙げます。\0の特殊文字を含む例として、スト = "ffff\0 ffff";echo(streen($str)echo(");for($i=0;)i