PHP只打印第一行CSV

时间:2012-12-12 21:25:03

标签: php csv

我在阅读CSV文件时遇到了麻烦。到目前为止,我可以打开CSV并阅读第一行。

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

SMITH
PHIL
CHARLIE
SALLY
ETC

我将文件保存为Excel格式的Excel文件,但每次换行时都会被捕获。

我目前的代码如下:

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

$data = fgetcsv($file);

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

fclose($file);

?>

当前输出

Array
(
    [0] => SMITH
)

感谢任何帮助。我的预期输出显然是一个包含所有值的单个数组。

谢谢。

2 个答案:

答案 0 :(得分:5)

你必须遍历每一行才能读取整个文件,否则你只是在阅读文件的第一行:

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

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

答案 1 :(得分:4)

fgetcsv()一次只能获得一行。您的代码应该更符合以下方式:

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

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

fclose($file);