[PHP-users 25886] Re: 連続ダブルコーテーションの置き換え

Yusuke ITO ito_yusuke @ white.livedoor.com
2005年 6月 23日 (木) 12:13:23 JST


伊東です。

--Seto<seto @ 1kg.jp> wrote:
> >>$column_1=preg_replace( '/"{2,}/', '"', $column_1 );
> >はだめでした。
> どのようにだめなのか書いたほうが良いですよ。
> # 私は問題ないと思うんだけどなぁ。

CSVの仕様?では、文字列中に"や,が存在する時にはクォートする必要があり、
その時文字列中の「"」を「""」に置き換える必要があると認識しています。
つまり、逆の動作をするには「""」→「"」の置き換えが必要なのであって…

ということを言ってるんだと思います。
で、まぁ結論はfgetcsvを使えよ、なのですが、自力でやるなら

  if(「"」で囲まれている){
    先頭と末尾の「"」を取り除く; ←(1)
    文字列中の「""」を「"」に置き換える; ←(2)
  }else{
    そのまま;
  }

(1)はsubstrなりで実装、
(2)はstr_replaceを使えばいいんじゃないでしょうか。
  $str = str_replace('""', '"', $str);

--
伊東 祐介
ito_yusuke @ white.livedoor.com




-----------------------------------------------
2GBまでメールや画像など貯め放題!さらに特典いっぱい♪
livedoor ギガメーラープラス 【新登場】
http://gigamailerplus.livedoor.com/



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