addcslashes

(PHP 4 )

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

説明

string addcslashes ( string str, string charlist)

charlistパラメータに羅列された文字の前に バックスラッシュを付けた文字列を返します。この関数は、 \n, \r 等ををC言語と同様の手 法によりエスケープします。アスキーコードが32未満または126より大き い文字は、8進表現に変換されます。

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

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

例 1addcslashes() の例

$escaped = addcslashes($not_escaped, "\0..\37!@\177..\377");

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

echo addcslashes('foo[]', 'A..z'); 
// 全ての大文字と小文字はエスケープされます。
// ... しかし、[\]^_` および空白文字もエスケープされてしまいます。

また、指定した範囲の2番目の文字ではなく、最初の文字が小文字ASCII 値の場合、範囲は定義されません。開始位置から終了位置までの文字の みがエスケープされます。ある文字のASCII値を見つけるには ord() 関数を使用して下さい。

echo addcslashes("zoo['.']", 'z..A');
/* 出力:
\zoo['\.']

*/

注意 PHP 4で追加されました。

stripcslashes(), stripslashes(), htmlspecialchars(), quotemeta() も参照下さい。