嗨,由于某种原因,我的以下代码无效:
if (($handle = fopen('https://www.national-lottery.co.uk/player/euromillions/results/downloadResultsCSV.ftl', 'r')) === false) {
die('Error opening file');
}
$headers = fgetcsv($handle, 1024, ',');
$complete = array();
while ($row = fgetcsv($handle, 1024, ',', "'")) {
$complete[] = array_combine($headers, $row);
++$row;
}
fclose($handle);
我认为它与CSV文件中的数据有关(Raffle中的引号是?) - 有没有办法可以忽略此列Raffle?
答案 0 :(得分:2)
$headers
未正确填充。尝试以下操作,它会读取多行直到它到达标题:
if (($handle = fopen('https://www.national-lottery.co.uk/player/euromillions/results/downloadResultsCSV.ftl', 'r')) === false) {
die('Error opening file');
}
do {
$headers = fgetcsv($handle, 1024);
} while (is_array($headers) && count($headers) != 9);
$complete = array();
while ($row = fgetcsv($handle, 1024)) {
$complete[] = array_combine($headers, $row);
++$row;
}
fclose($handle);
答案 1 :(得分:0)
此CSV文件的附件是“不是”
答案 2 :(得分:0)
您将单引号定义为机箱,但源文件没有机箱:
基于:
$row = fgetcsv($handle, 1024, ',', "'")
PHP希望您的数据采用以下格式:
'07-Jun-2013','14','26','45','50','7','2','7','LSH166797'
但文件采用以下格式:
07-Jun-2013,14,26,45,50,7,2,7,LSH166797
您的代码中可能存在其他问题,我没有深入挖掘。
为了避免麻烦,你可以使用fgets和explode()每一行。