[PHP-users 22373]Re: CSVのHTTPアップロードで文字化け
Moriyoshi Koizumi
moriyoshi @ at.wakwak.com
2004年 6月 24日 (木) 16:35:14 JST
小泉です。
前のメールがあまりにも等閑でしたので、補足します。
> PHP3 における対応方法はありません。
> PHP4 にしても、あさかわさんのおっしゃるとおり、
> \x5c (=\記号/バックスラッシュ) を見つけると無条件にエスケープと
> 判断する仕様のため、根本的な解決法はありません。
上記の「対応方法はありません」、とは fgetcsv() 単体に関しての話で、
自分で fgetcsv() に相当する関数を用意して対処することはもちろん可能です。
次のチェックポイントを元に作ってみてはいかがでしょうか
a. 入力される CSV ファイルのフィールド (列) は、ダブルクオーテーション
などで囲まれることがある
b. 入力される CSV ファイルのフィールドには、改行文字が含まれることが
ある
c. 入力される CSV ファイルのフィールドには、デリミタ文字 (カンマ) が
含まれることがある
a. b. c. いずれにも該当しないならば、単純に fgets() で一行読み込んだのち
split() 関数で一行分のデータをフィールド単位に分割するだけでほとんどの場
合うまく機能するでしょう。
それ以外の場合はやや複雑になるでしょう。
PHP-users メーリングリストの案内