ホームページ >バックエンド開発 >PHPチュートリアル >php_PHP チュートリアルでのストリップスラッシュと追加スラッシュの使用法の違い
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 つ削除します