5丁目通信(仮称)

とある5丁目で活動する還暦間近のWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。

PHPのfgetcsv()は使えない?という話し


PHPの関数で用意されているfgetcsv()は、CSVファイルを一行読み込んで、各項目を配列で返してくれます。こんな感じ。

$handle = @fopen("testtest.csv", "r");
$buffer = fgetcsv($handle, 4096);

ただし、CSVファイルに2バイトのデータが含まれていたら、うまく切り分けてくれない。PHPの内部コードはUTF-8で、CSVファイルがシフトJISなら、変なところで切ってくれる。

仕方ないので、手っ取り早く

$handle = @fopen("testtest.csv", "r");
$buffer = split(",", fgets($handle, 4096));

のように変更してあげる。CSVファイルはこちらでプログラムで生成されているので、途中にコンマが紛れてこないだろうということで、とりあえずOKとしておきます。なんだが美しくないなあー。これだと完全なCSVファイルの処理をしていないので、また後で考えなければいけないか・・・。


%d人のブロガーが「いいね」をつけました。