1

我在读取 CSV 文件时遇到问题。到目前为止,我能够打开 CSV 并阅读第一行。

我的 CSV 文件如下所示(注意每一行):

SMITH
PHIL
CHARLIE
SALLY
ETC

我将 excel 中的文件另存为 CSV,但它在每个换行符上都会被赶上。

我当前的代码如下所示:

<?php 
$file = fopen('surnames.csv', 'r');

$data = fgetcsv($file);

echo "<pre>";
print_r($data);
echo "</pre>";

fclose($file);

?>

电流输出为

Array
(
    [0] => SMITH
)

任何帮助表示赞赏。我预期的输出显然是一个包含所有值的数组。

谢谢你。

4

2 回答 2

5

您必须遍历每一行才能读取整个文件,否则您只会读取文件中的第一行:

$data = array();
while( ($line = fgetcsv($handle)) !== false) {
    $data[] = $line;
}

现在$data将是一个多维数组,其中包含 CSV 文件中的每一行。

于 2012-12-12T21:28:01.600 回答
4

fgetcsv()一次只能得到一条线。您的代码应该更符合以下内容:

<?php 
$file = fopen('surnames.csv', 'r');

echo "<pre>";
while( ($data = fgetcsv($file)) !== false ) {
    print_r($data);
}
echo "</pre>";

fclose($file);
于 2012-12-12T21:28:07.700 回答