PHP 言語では、文字列のエスケープとアンチエスケープは、PHP が提供する独自の関数 addslashes() とtripslashes() を使用して実現できます。
1.addslashes()関数
addslashes()関数は、指定された文字列にバックスラッシュ()を追加するために使用されます。
構文形式は次のとおりです:
addslashes(string);
説明: データベース クエリ ステートメントなどの特定の文字の前にバックスラッシュを追加した文字列を返します。これらの文字は、一重引用符 (')、二重引用符 (")、バックスラッシュ ()、および NUL (NULL 文字) です。
2.tripslashes() 関数
stripslashes() 関数は、addcslashes() 関数に使用されます バックスラッシュを追加します() を削除して元に戻ります。
構文形式は次のとおりです:
stripslashes(string);
以前、php エスケープ文字列データとアンチエスケープ文字列データとは何か、エスケープ文字 " " とその方法を紹介しました。ここでは、addslashes() 関数を使用して文字列をエスケープし、次に、stripslashes() 関数を使用して文字列を復元します。出力結果は次のとおりです:
<?php $str = "this url_name = 'PHP中文网'"; echo $str."<br>"; $a = addslashes($str); //对字符串进行转义 echo $a."<br>"; //输出转义后的字符串 $b = stripslashes($a); //对转义后的字符串进行还原 echo $b."<br>"; //输出还原后的字符串 ?>
データベースにデータを挿入する前に、addcslashes() 関数を使用して文字列をエスケープし、
特殊文字がエスケープせずにデータベースに挿入されるのを避ける必要があります。エラーが発生しましたさらに、addslashes() 関数を使用して実装されたエスケープされた文字列は、stripslashes() 関数を使用して復元されますが、注: キャッシュ ファイルでは、通常、
キャッシュされたデータの値は、指定された範囲をエスケープするために addcslashes() 関数を使用します。 たとえば、データをデータベースに入力する場合、ほとんどのデータベースは O'reilly をエスケープする必要があります。これは、PHP ディレクティブ magic_quotes_sybase が on に設定されている場合、addslashes は (') を含む特殊文字をエスケープします。 (")、()、(NUL) の 4 文字。この関数は DBMS に独自のエスケープ関数がない場合に使用しますが、DBMS に独自のエスケープ関数がある場合は、独自の関数を使用することをお勧めします。たとえば、MySQL には SQL をエスケープするための mysql_real_escape_string 関数があります。 PHP5.3 より前では、magic_quotes_gpc はデフォルトで有効になっており、主に $GET、$POST、$COOKIE に対して addlashes 操作を実行するため、これらの変数に対して addlashes を繰り返し呼び出す必要はありません。そうしないと、二重エスケープが発生します。ただし、magic_quotes_gpc は PHP5.3 で廃止され、PHP5.4 以降は削除されました。最新バージョンの PHP を使用している場合は、この問題を心配する必要はありません。 tripslashes は、addslashes のエスケープ解除関数です。
以上がPHP エスケープおよびアンチエスケープ文字列関数の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。