phpではstripslashesとaddslashesをよく使いますが、stripslashesとaddslashesの使い方と違いを詳しく紹介します。
スラッシュを追加します
addslashes() 関数は、指定された定義済み文字の前にバックスラッシュを追加します。
これらの事前定義された文字は次のとおりです:
•一重引用符 (')
•二重引用符 (")
•バックスラッシュ ()
•NULL
この例では、文字列内の事前定義された文字にバックスラッシュを追加します。
注: デフォルトでは、PHP 命令 magic_quotes_gpc がオンになっており、すべての GET、POST、COOKIE データに対して addslashes() が自動的に実行されます。 magic_quotes_gpc によってエスケープされた文字列に対して addslashes() を使用しないでください。二重エスケープが発生するためです。この状況が発生した場合は、関数 get_magic_quotes_gpc() を使用して検出できます。
コードは次のとおりです | コードをコピー |
/** 関数 str_addslashes($str, $db_type='mysql') { |
を追加します
ストリップスラッシュ()
stripslashes() 関数は、addslashes() 関数によって追加されたバックスラッシュを削除します。
例
コード
コードをコピー | |
//データを送信するか、変数を準備します: $Content=addslashes("一重引用符や変数の有無にかかわらず、これはデータです"); //データベースにデータを挿入します。コードは省略されています //データの表示を開始します $Content=”データベースから読み取られたデータ”; if(get_magic_quotes_gpc()){
$Content=ストリップスラッシュ($Content)
|
違いのまとめ
magic_quotes_gpc = Onの場合、addslashes()で処理したデータは'の形でデータベースに保存されます。このとき直接出力してみると、思ったより内容が多いのでstripslashes()します。と表示される場合は削除できます(str_replace("", "",$Str) とは異なります)。magic_quotes_gpc = Off の場合、addslashes() で処理されたデータは ' の形式でデータベースに保存されます。addslashes() は、エラーなくデータを挿入する役割を果たします。今度はそうであれば、データは正常です。もう、stripslashes() を使用する必要はありません。
addslashes() とtripslashes() はまったく逆です。 ダイレクト メモリ:addslashes() は 1 つ追加し、stripslashes() は 1 つ削除します