4

以前に使用していたコードのように、最初の行(ヘッダー)をスキップするように作成した新しいコードを取得できません(下を参照)。

エラーは発生していませんが、最初の行を省略できません。

$file = fopen($uploadcsv,"r");
$column_headers = array();
$row_count = 0;
while(!feof($file)) {   
  if ($row_count==0){
    $column_headers = $file;
  } else {
    print_r(fgetcsv($file));
  }
  ++$row_count;
  }

fclose($file);

以下は、参照と比較のために、ヘッダーをスキップした古いソースです。

$handle = fopen($uploadcsv, 'r');
$column_headers = array();
$row_count = 0;
while (($data = fgetcsv($handle, 100000, ",")) !== FALSE) {
  if ($row_count==0){
    $column_headers = $data;
  } else {
    print_r($data);
  }
  ++$row_count;
}
fclose($handle);
4

2 に答える 2

9

なぜ数えるのですか?ループする前にヘッダーを取得するだけです。

$column_headers = fgetcsv($file);
while(!feof($file)) {
   ...

また、ファイルポインタを変数に割り当てるだけです。

于 2010-12-10T14:46:26.367 に答える
2

行を読んでいないの$row_countはいつですか。0

変化する

if ($row_count==0){
    $column_headers = $file;  // just assigning file handle.
}

if ($row_count==0){
    $column_headers = fgetcsv($file); // read the row.
}
于 2010-12-10T14:46:51.320 に答える