【发布时间】:2013-06-03 22:27:21
【问题描述】:
我有一个如下所示的 CSV 文件(大约有 500 行)
ID,Title,LastName,HouseNo,Street,City,Postcode,Telephone
1209109,Miss,Test,1635,Test Road,Test, AB12 2EF,
1209833,Mrs,Test,3,Test Close,Test,BB12 2EF,
1205839,Miss,Test,1,Test Road,Test,AA12 2EX,
然后我正在使用以下 PHP:
$handle = fopen($csvFile, "r");
$imports = array();
$row = 1;
echo "<table>";
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
{
// skip headers
if($row == 1){ $row++; continue; }
echo "<tr>";
echo "<td>$data[0]</td>";
echo "<td>$data[1]</td>";
echo "<tr>";
}
echo "</table>";
fclose($handle);`
我希望是这样的:
1209109 Miss
1209833 Mrs
但由于某种原因,它似乎从文件中的一个随机点开始,然后在错误的<td> 中输出一些数据。
provlem 可以是每行的尾随逗号吗?
谢谢
【问题讨论】:
-
我从未见过每行末尾都带有逗号的 CSV 文件,您是否尝试过删除它们
-
我认为结尾的逗号只会在输出中添加一个额外的空列......我怀疑这是你的问题
-
@meda,我经常看到他们。当某人没有最后一列的数据,但懒得检查时。 CSV 解析器不应因此而失败。
-
提供的 PHP 代码和 CSV 在我的本地机器上运行良好。您确定这些是您用于测试的相同文件吗?
-
您可能想要检查您正在使用的换行符 (EOL) 字符。通常是
\n,但有时是\r...这可能会导致一些问题?