-1

嗨,由于某种原因,我的以下代码不起作用:

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 列?

4

3 回答 3

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);
于 2013-06-09T12:53:03.370 回答
0

此 CSV 文件的附件是“不是”

于 2013-06-09T12:50:08.173 回答
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() 每一行。

于 2013-06-09T12:53:54.037 回答