我正在使用下面的代码将 csv 文件转换为数组。但是,问题是行的末尾是CR LF,并且未检测到,因此数组的偏移量错误。 CR LF 被忽略,其周围的“单元格”被合并。
我如何重写代码来正确检测该行结尾并拆分数组?或者,是否有更好的方法将 csv 转换为数组?
这里有一些类似的问题,但我还没有找到这个问题的解决方案。
Thanks.
$fileName ='test.csv';
$csvData = file_get_contents($fileName);
$csvNumColumns = 11;
$csvDelim = ";";
$data = array_chunk(str_getcsv($csvData, $csvDelim), $csvNumColumns);
print_r($data);
你有没有尝试过使用fgetcsv()
?完整信息php.net.
来自 php.net 的示例用法
<?php
$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);
}
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)