[pgsql-jp: 34076] Re: データサイズの取得方法

satoken satoken @ ma.0038.net
2004年 10月 7日 (木) 00:46:11 JST


TANIDA Yutaka <tanida @ sra.co.jp> wrote:

> >     //マルチバイト文字関数(mbstring)が組み込まれている
> >     $str_len_byte = mb_ereg('[.]*', $string, $array);
> 
> これは正しくマルチバイトをハンドリングできる正規表現エンジンなら、バイト
> 数にならないんじゃないですか?

 mb_ereg()の説明(http://www.php.net/manual/ja/function.mb-ereg.php)に
よりますと「オプションの3番目の引数 regsを指定した場合は、
一致した部分のバイト数を返し、配列regsに一致した部分文字列が格納されます。」
とありますので、常に文字列全部にマッチングすれば文字列のバイト数が解ると
思った次第です。>谷田さん

 ただ、加藤@川崎さんからのアドバイスによると、どうやらバイト数を求める
必要は、もともと無かったのかもしれません。

> 文字列長に制限のない、たとえばtext型の利用を検討されてはいかがでしょうか。

 どんなに長い文字列でも格納できてしまうのは、データベース全体のサイズや
検索結果を受け取るPHP側の作業領域の事を考えると、ちょっと不安はあるのですが
データベース登録時に適当な文字列サイズで切ってしまえば運用上の問題は
殆ど無いのかもしれませんね。検討してみます。
------------------------------
satoken  <satoken @ ma.0038.net>



pgsql-jp メーリングリストの案内