2007年4月3日火曜日

 

PHPでCSVファイルを読み込み

fopen でオープンし、while ループを繰り返す ファイルから1行を読み込む際、fgets関数の代わりに、 fgetcsv 関数を用いる。

fgetcsv (fopenで戻るファイル番号, 最大読み込みバイト数, 区切り文字)
戻り値は、区切り文字で区切られた部分文字列からなる配列である。

ループ終了条件は、 fgetcsv 関数が失敗(ファイル・エンド)するまでである。 enctype="multipart/form-data" を指定する。

type="file" の内容は POST METHOD で送られ、PHP側では $_FILE 配列変数で受け取ることができる。
送られたファイル名は、$_FILES[名前]["tmp_name"] に格納される(38行目)。 名前は、input type="file"に付けた名前である。
また、$_FILES[名前]["size"] に、送られたファイルのサイズが格納されるので、この値が 0 だったら、ファイル指定が間違っていたとしてエラーを表示する。

注意: この関数はロケール設定を考慮します。もし LANG が例えば en_US.UTF-8 の場合、 ファイル中の 1 バイトエンコーディングは間違って読み込まれます。
注意: マッキントッシュコンピュータ上で作成されたファイルを読み込む際に、 PHP が行末を認識できないという問題が発生した場合、実行時の設定オプションauto_detect_line_endings を有効にする必要が生じるかもしれません。
fgetcsv()[PHP マニュアル]

参考

関連

ラベル: , ,


コメント: コメントを投稿

登録 コメントの投稿 [Atom]



この投稿へのリンク:

リンクを作成



<< ホーム

This page is powered by Blogger. Isn't yours?

登録 投稿 [Atom]

Google