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);?>
参考
- stripcslashes() - addcslashes でクォートされた文字列をアンクォートする
- stripslashes() - クォートされた文字列のクォート部分を取り除く
- addcslashes() - C 言語と同様にスラッシュで文字列をクォートする
- htmlspecialchars() - 特殊文字を HTML エンティティに変換する
- quotemeta() - メタ文字をクォートする
- get_magic_quotes_gpc() - magic_quotes_gpc の現在の設定を得る