我有一个脚本可以从CSV文件中读取,有时接收到的CSV文件包含不均匀的定界符/列,因此第一行可以有30列,第二行可以有20列,依此类推。我想我自己的一些解决方案,即:
计算最宽行中的定界符,然后将适当的数量添加到短行中以使它们相等。
但是我想知道是否有人有更优雅的方法来做到这一点。
取决于您用来读取CSV的最优雅方式是fgetcsv
,请参阅http://www.php.net/manual/en/function.fgetcsv.php了解更多信息
[这里有一个计数CSV数的示例:
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}