addslashes
(PHP 4, PHP 5)
addslashes — 文字列をスラッシュでクォートする
説明
$str
)
データベースへの問い合わせなどに際してクォートされるべき文字の前に
バックスラッシュを挿入した文字列を返します。
クォートされるべき文字とは、シングルクォート('),
ダブルクォート("),バックスラッシュ
(\) ,NUL (NULL バイト) です。
addslashes() の使用例は、 データベースにデータを登録するときです。例えば、 O'reilly という名前をデータベースに挿入するには、 エスケープする必要があります。各 DBMS 専用のエスケープ関数 (たとえば MySQL なら mysqli_real_escape_string()、 PostgreSQL なら pg_escape_string()) を使うことを強く推奨しますが、もし専用の関数がなく かつその DBMS が \ をエスケープ用文字として使用しているのなら この関数を使用することができます。 これはデータベースにデータを格納する場合のみ必要です。 追加される \ は挿入されません。 PHP のディレクティブ magic_quotes_sybase を on にすると、' はもうひとつの ' でエスケープされます。
PHP ディレクティブ magic_quotes_gpc のデフォルトは、PHP 5.4 より前のバージョンでは on で、 全ての GET、POST、COOKIE データについて基本的に addslashes() を実行していました。 magic_quotes_gpc によってすでにエスケープされた文字列に対して addslashes() を実行しないでください。 さもないと、重複してエスケープされてしまいます。 関数 get_magic_quotes_gpc() はこれを確認するのに役立つかも知れません。
パラメータ
-
str -
エスケープしたい文字列。
返り値
エスケープされた文字列を返します。
例
例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 の現在の設定を得る