PHP マニュアル
前のページ |  | 次のページ

# 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 , \v に変換されます。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['\.']

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

前のページ | ホーム | 次のページ
Strings(文字列関数) | 上に戻る | addslashes