[PHP-users 4175] Re: fgetcsv 2 文字のデリミタ
Youichi Iwakiri
php-users@php.gr.jp
Thu, 06 Dec 2001 18:48:50 +0900
いわきりです
uzi@kun.desu.ne.jp wrote in <20011206171300.E162.UZI@kun.desu.ne.jp>:
> <> をデリミタとして使っているファイルを
> fgetcsv を使って取り出そうとしているのですが、
そもそもCSV(comma separeted value)を読込む関数で
別物を読込もうとしている点がなにですが :-)
> fgetcsv()は複数文字を使用したデリミタは対応していないので
> しょうか?
対応してないです。
See ext/standard/file.c
>/* {{{ proto array fgetcsv(int fp, int length [, string delimiter])
> Get line from file pointer and parse for CSV fields */
>
>PHP_FUNCTION(fgetcsv) {
> char *temp, *tptr, *bptr, *lineEnd;
> char delimiter = ','; /* allow this to be set as parameter */
ふーん、delimiterはchar型なのね。
> case 3:
> if (zend_get_parameters_ex(3, &fd, &bytes, &p_delim) == FAILURE) {
> WRONG_PARAM_COUNT;
> }
> convert_to_string_ex(p_delim);
> /* Make sure that there is at least one character in string */
> if ((*p_delim)->value.str.len < 1) {
> WRONG_PARAM_COUNT;
> }
> /* use first character from string */
> delimiter = (*p_delim)->value.str.val[0];
> break;
渡ってきたstring型の変数の最初の1文字だけを使うと書いてあるようです。
#おーぷんそーすだとすぐに確認出来るところが利点だと思ってるんですけど