関数・クラス解説

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);

参考

  • stripcslashes() - addcslashes でクォートされた文字列をアンクォートする
  • stripslashes() - クォートされた文字列のクォート部分を取り除く
  • addcslashes() - C 言語と同様にスラッシュで文字列をクォートする
  • htmlspecialchars() - 特殊文字を HTML エンティティに変換する
  • quotemeta() - メタ文字をクォートする
  • get_magic_quotes_gpc() - magic_quotes_gpc の現在の設定を得る
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール