2013-06-09 3 views
-1

Привета по какой-то причине моей следующего кода Isnt работа:Игнорировать CSV столбец

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?

+0

Что означает «не работает»? – yaccz

+0

он, кажется, не извлекает никаких данных (тот же код работает для другого URL-адреса) – iYugShell

ответ

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); 
+0

Тим, спасибо огромное - мне было трудно объяснить, что происходит, потому что я просто не знал. Спасибо, что нашли время высоко ценим! – iYugShell

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 и взрывать() каждую строку.

Смежные вопросы