Php/docs/function.addslashes

提供:Dev Guides
< Php
移動先:案内検索

addslashes

(PHP 4, PHP 5, PHP 7)

addslashes文字列をスラッシュでクォートする


説明

addslashes ( string $string ) : string

エスケープすべき文字の前にバックスラッシュを付けて返します。 エスケープすべき文字とは、以下のとおりです。

  • シングルクォート (')
  • ダブルクォート (")
  • バックスラッシュ (\)
  • NUL (null バイト)

addslashes() 関数 を使うケースとして、 PHPが評価する文字列データに含まれる、既に述べた文字をエスケープする場合があります。

<?php$str = "O'Reilly?";eval("echo '" . addslashes($str) . "';");?>

PHP 5.4.0 より前のバージョンでは、 magic_quotes_gpc が デフォルトで on だったため、 原則として addslashes() 関数がすべての GET, POST, COOKIE のデータに対して実行されていました。 magic_quotes_gpc によって既にエスケープされた文字列に対して addslashes()関数 を絶対に実行してはいけません。2重エスケープになるからです。 get_magic_quotes_gpc()関数 で既にエスケープが行われているかを簡単にチェックできます。

addslashes() 関数は、 SQLインジェクション を防止しようとして誤った使い方がされることがあります。 この関数を使うのではなく、データベース特有のエスケープ関数 および/もしくは プリペアドステートメントを使うようにしてください。


パラメータ

string
エスケープしたい文字列。


返り値

エスケープされた文字列を返します。


例1 addslashes() の例

<?php$str = "Is your name O'Reilly?";// 出力: Is your name O\'Reilly?echo addslashes($str);?>

参考