2015-05-11 5 views
-1

Я хочу знать, как загружать и извлекать данные из большого файла CSV или XLS с помощью PHP. Существуют ли доступные библиотеки PHP?Загрузка CSV большого размера

Я пробовал использовать приведенный ниже код, но для загрузки требуется большое количество времени. Единственный способ сделать это с помощью cron, или есть другой метод?

$file=fopen(base_url()."/xml/sample.csv","r"); 
while(! feof($file)) 
{ 
    pr(fgetcsv($file)); 
} 

fclose($file); 
+0

Какие проблемы вы с? Загрузка большого файла? Разбор большого файла? (не то, что вы упоминаете что-то, кроме загрузки) –

+0

Мне просто нужно получить все данные в файле csv в обычном режиме, занимая много времени –

+0

Получите его где? Что вы с ним делаете? Поместить его в базу данных? Отображение? Создание гигантского массива в PHP? Сохранять его на своем веб-сервере? И ответы будут различаться для определенных форматов, таких как CSV, XLS, ONIX, потому что все они имеют разные форматы. –

ответ

1

Одним из способов запуска сценария это, кажется, лучший способ

$this->db->query("LOAD DATA LOCAL INFILE '".base_url()."/xml/sample.csv' 
REPLACE INTO TABLE TABLE_NAME FIELDS TERMINATED BY ',' 
ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES"); 

Альтернативный способ запуска скрипта

<?php 
$row = 1; 
if (($handle = fopen("ptt.csv", "r")) !== FALSE) { 
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
if($row == 1){ $row++; continue; } 
$num = count($data); 
      $row++; 
    for ($c=0; $c < $num; $c++) { 
    if(strpos($data[$c], 'Finished') !== false) { 
    $c++; 
echo "<TR> <TD nowrap>" . $data[$c] . "</ TD>"; } 
    Else{ 
     echo "<TD nowrap>" . $data[$c] . "</ TD>"; 
     } 
    } 
} 
fclose($handle); 
} 
?>