String 関数
addslashes
String 関数
PHP Manual

# addcslashes

(PHP 4, PHP 5)

addcslashes — C 言語と同様にスラッシュで文字列をクォートする

### 説明

string addcslashes ( string `$str` , string `$charlist` )

`charlist` パラメータに羅列された文字の前にバックスラッシュを付けた文字列を返します。

### パラメータ

`str`

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

`charlist`

  エスケープの対象となる文字を並べたもの。 `charlist` が \n, \r 等の文字を含んでいる場合、 C言語と同様の手法によりエスケープされます。 アスキーコードが32未満または126より大きい文字は、8進表現に変換されます。

  charlist 引数の文字の列びを定義する際には、 範囲の最初と最後で指定する文字集合に含まれる文字の種類を把握するようにしてください。

  `<?php
  echo addcslashes('foo[ ]', 'A..z');
  // 出力: \f\o\o\[ \]
  // 全ての大文字と小文字はエスケープされます。
  // ... しかし、[\]^_` もエスケープされてしまいます。
  ?>`
  また、ある範囲を指定する最初の文字がその範囲の2番目の文字よりも大きな ASCII 値を有している場合、範囲は定義されません。 最初と最後の文字とピリオド文字のみがエスケープされます。 ある文字の ASCII 値を見つけるには、 ord() 関数を使用してください。
  `<?php
  echo addcslashes("zoo['.']", 'z..A');
  // 出力: \zoo['\.']
  ?>`

  エスケープ文字を0, a, b, f, n, r, t , vとする場合には注意してください。 これらは、\0, \a, \b, \f, \n, \r, \t , \v に変換されます。PHPでは、 \0 (NULL), \r (復改文字), \n (改行文字), \f (フォームフィード), \v (垂直タブ), \t (タブ) が定義済みのエスケープシーケンスですが、C言語では、 これら全てが定義済みのエスケープシーケンスです。

### 返り値

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

### 変更履歴

バージョン | 説明
--- | ---
5.2.5 | エスケープシーケンス \v と \f が追加されました。

### 例

"\0..\37" のように `charlist` に範囲を指定可能です。この場合、アスキーコードが 0 から 31 の範囲の文字は全てエスケープされます。

例1 addcslashes() の例

`<?php
$escaped = addcslashes($not_escaped, "\0..\37!@\177..\377");
?>`

### 参考

- stripcslashes() - addcslashes でクォートされた文字列をアンクォートする
- stripslashes() - クォートされた文字列のクォート部分を取り除く
- addslashes() - 文字列をスラッシュでクォートする
- htmlspecialchars() - 特殊文字を HTML エンティティに変換する
- quotemeta() - メタ文字をクォートする

String 関数
addslashes
String 関数
PHP Manual