関数・クラス解説
addslashes
version:PHP 4, PHP 5, PHP 7 (公式)特定の文字の前にバックスラッシュを付けてエスケープされた文字列を返す
フォーマット
string : addslashes ( string $str )
パラメータ
string $str (必須)
エスケープしたい文字列
返り値 string
バックスラッシュが付加されエスケープ処理された文字列
解説
エスケープが必要な特定の文字の前にバックスラッシュを付けてエスケープします。
特定の文字とは以下の文字となります。
シングルクォート (')
ダブルクォート (")
バックスラッシュ (\)
NUL (NULL バイト)
get_magic_quotes_gpc()関数 で、文字列が既にエスケープがされているかどうかをチェック可能です。ただしget_magic_quotes_gpc()は7.4で非推奨となりました。
記述サンプル
//PHP 7.4.6で実行
$testStr = "これは'300'\です";
// 実行
echo addslashes($testStr);
//結果
これは\'300\'\\です
参考リンク
・get_magic_quotes_gpc magic_quotes_gpc の現在の設定を得る・addcslashes 文字列をバックスラッシュでクォート(エスケープ)する
・htmlspecialchars 特殊な文字をHTMLエンティティに変換する
・quotemeta 入力文字列の中のメタ文字をクォートする
・stripcslashes addcslashes() でクォートされた文字列をアンクォートする
・stripslashes バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
タグ
エスケープ String 文字列
公式リファレンス
書式
addslashes ( string $str ) : string
説明
エスケープすべき文字の前にバックスラッシュを付けて返します。 エスケープすべき文字とは、以下のとおりです。
- シングルクォート (')
- ダブルクォート (")
- バックスラッシュ (\)
- NUL (NULL バイト)
addslashes() 関数 を使うケースとして、 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インジェクション を防止しようとして誤った使い方がされることがあります。 この関数を使うのではなく、データベース特有のエスケープ関数 および/もしくは プリペアドステートメントを使うようにしてください。
パラメータ
- str
- エスケープしたい文字列。
返値
エスケープされた文字列を返します。
サンプル
例1 addslashes() の例
$str = "Is your name O'Reilly?";
// 出力: Is your name O\'Reilly?
echo addslashes($str);
参考
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール