[PHP-users 26918] Re: 文字列エスケープ関数について

canada-php@kaede.to canada-php @ kaede.to
2005年 9月 17日 (土) 14:46:18 JST


かなだです。

tommyさんの<4E9CA760B0773B47B5778BE14D70604A0166FDF4 @ miku.int.asobicreate.com>から
> 素朴な疑問なのですが、QuoteMeta関数とpreg_quote関数、似て微妙に異なる
> 関数ですが、なぜこんな事になっているのか、そして具体的な使い分けに関して
> お聞きしたく思いました。

使い分けについては各マニュアルに書いてあると思います。

> 作る際に使おうとすると、"-"と"/"がエスケープされないので、改めて置換関数
> などを用いないといけません。なぜ?と疑問を持ちました。

これについてはpreg-quoteの項に書いてあります。

http://jp2.php.net/manual/ja/function.preg-quote.php
| オプションのdelimiterが指定された場合、ここで指定
| した文字もエスケープされます。これは、PCRE関数が使
| 用する デリミタをエスケープする場合に便利です。'/'
| がデリミタとしては最も 一般的に使用されています。 

> 同じように、addslashesとmysql_escape_string,pg_escape_stringなどの関係も
> 気になるところです。

一覧を作ってみました。

一覧
http://kaede.to/~canada/strage/sample/escape.php
ソース
http://kaede.to/~canada/strage/sample/escape.php.txt
-- 
かなだまさかつ


PHP-users メーリングリストの案内