1
while ($keys = fgetcsv($fp, 0, "\t")) {

        if ($c == 0) {
            $headers = $keys;

        } else {
            $rows[] = $keys;
            //var_dump($keys);
        }

         $c ++;
    }

fclose($fp);
echo count($rows);

$countキーをダンプしても(コメント行)、期待どおりにエコーしますが、ループが終了した後は何も起こりません。約 9154 行。

以下のこれらの行は機能せず、スクリプトの実行は明白なエラーなしで停止します。

fclose($fp);
echo count($rows);
4

2 に答える 2

1

PHPマニュアルのように試してください:

while( ( $keys = fgetcsv( $fp, 0, "\t" ) ) !== FALSE ) {

また、入力 csv のファイルの終わりがきれいであることを確認してください。

于 2013-09-25T20:38:01.080 に答える
0

これを試して、何が起こるか教えてください:

// make sure we see all errors
error_reporting(-1);
ini_set('display_errors', true);

// read the entire file into an array, one element per row
$rows = array();
while($fields = fgetcsv($fp, 0, "\t")) {
    $rows[] = $fields;
}
fclose($fp);

// handle empty CSV case
if(count($rows) == 0) {
    die('CSV is empty');
}

$headers = $rows[0];
于 2013-09-25T20:48:19.427 に答える