PHPエラー「Wrong parameter count for fgetcsv()」の原因と解決方法
PHPでCSVファイルを読み込む関数「fgetcsv()」を使用しようとして、
Warning: Wrong parameter count for fgetcsv() in /var/www/html/test.php on line 12
といったエラーが出た場合、このプログラムを実行している環境はPHP5ではなく、PHP4かもしれない。
《PHP4でエラーが出るプログラムのサンプル》
$csv = fopen("/var/www/html/test.csv", "r" );
$csv2 = fgetcsv($csv);
Warning: Wrong parameter count for fgetcsv() in /var/www/html/test.php on line 12
このプログラムは、PHP5の環境ではエラーとならない。PHP5ではfgetcsv()の第2引数は省略できるようになったからだ。
PHP4では省略すると、
Wrong parameter count for fgetcsv()
というエラーになる。
つまり、
$csv2 = fgetcsv($csv);
と第2引数を省略すると、PHP5ではエラーにならないが、PHP4ではエラーになるので、例えば、以下のようにきちんと第2引数を記述すれば問題は解決する。
$csv2 = fgetcsv($csv,1000);
※fgetcsv()の第2引数:CSVファイルの各行の最大の長さ(length)を指定する。