2017 © Pedro Peláez
 

library csv

Read very large CSV files in parts

image

pllano/csv

Read very large CSV files in parts

  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

Pllano CSV Reader

Latest Version Software License, (*1)

Read large data from csv files in parts in php, (*2)

System Requirements

You need **PHP >= 5.3*, (*3)

Install

Install Csv Reader using Composer., (*4)

$ composer require pllano/csv

or in composer.json, (*5)

"require": {
    "pllano/csv": "1.0.2"
}

Fast start => tests/FastStart.php

Save the above code fragment as test.php in your Web root folder., (*6)

``` php require 'vendor/autoload.php'; // require_once '/vendor/pllano/csv/src/Reader.php'; // require_once DIR.'/src/Reader.php';, (*7)

$filename = 'test.csv';, (*8)

$csv = new Pllano\Csv\Reader($filename);, (*9)

$records = $csv->Read();, (*10)

$count = count($records); if ($count >= 1) { foreach ($records as $item) {, (*11)

    print_r($item);
    print_r('<br>');

}

}, (*12)


Read one line => tests/ReadOneLine.php ------- ``` php require 'vendor/autoload.php'; // require_once '/vendor/pllano/csv/src/Reader.php'; // require_once __DIR__.'/src/Reader.php'; $filename = 'test.csv'; $csv = new Pllano\Csv\Reader($filename); $csv->setItemStart(10); $csv->setExecute(1); $records = $csv->Read(); print_r($records); /* Array ( [0] => Array ( [name] => Lorem [number] => 11 [price] => 22.00 ) ) */

Real Line Key => tests/RealLineKey.php

``` php require 'vendor/autoload.php'; // require_once '/vendor/pllano/csv/src/Reader.php'; // require_once DIR.'/src/Reader.php';, (*13)

$filename = 'test2.csv';, (*14)

$csv = new Pllano\Csv\Reader($filename);, (*15)

$csv->setItemStart(10); // start item - default: 1 $csv->setExecute(50); // amount - default: 0, (*16)

$records = $csv->Read();, (*17)

$item_start = $csv->getItemStart(); // returns 0, (*18)

$count = count($records); if ($count >= 1) { foreach ($records as $key => $item) {, (*19)

$real_key = $key + $item_start;

    print_r($real_key);
    print_r(' - ');
    print_r($item);
    print_r('<br>');

}

}, (*20)


Example => tests/ReadRefresh.php ------- ``` php function clean($value = '') { $value = trim($value); $value = stripslashes($value); $value = strip_tags($value); $value = htmlspecialchars($value, ENT_QUOTES); // $value = htmlentities($value); return $value; } $filename = 'test.csv'; $start = 0; $rows_total = 0; if ($_GET["filename"]) {$filename = clean($_GET["filename"]);} if ($_GET["start"]) {$start = clean($_GET['start']);} // Include Composer autoloader if not already done. require 'vendor/autoload.php'; // require_once '/vendor/pllano/csv/src/Reader.php'; // require_once __DIR__.'/src/Reader.php'; $csv = new Pllano\Csv\Reader($filename); // $csv->setDelimiter(';'); // default: ; // $csv->setEnclosure('"'); // default: " // $csv->setEscape('\\'); // default: \\ // $csv->setHeaders('name;number;price'); // default: null $csv->setItemStart($start); // start item - default: 0 $csv->setExecute(10); // amount - default: 0 // $csv->setTimeLimit(29); // Monitoring the execution time of the script in seconds set_time_limit // $csv->setAutoDetection(false); // Auto Detection Delimiter false|true - default: false $stop = 500; $records = $csv->Read(); $count = count($records); if ($count >= 1) { foreach ($records as $item) { print_r($item); print_r('<br>'); } } $rows_total = $csv->countItems(); // returns total items // $csv->getHeaders(); // returns Array ( [0] => name [1] => number [2] => price ) // $csv->getItemStart(); // returns string // $csv->getExecute(); // returns amount 10 $end = $csv->getItemEnd(); // returns 11 // $csv->getAutoDetection(); // returns false|true // $csv->getCsvControl(); // returns Array ( [0] => ; [1] => " [2] => \ ) if ($filename && $end >= 0 && $rows_total >= 0) { if ($end <= $rows_total && $end <= $stop) { // start //site.com/test.php print '<meta http-equiv="Refresh" content="0; url=/test.php?filename='.$filename.'&amp;start='.$end.'">'; } if ($end >= $stop || $end >= $rows_total) { print_r('<br>'); print_r('Memory, MB: '.$csv->getMemory()); print_r('<br>'); print_r('Time, sec: '.$csv->getTime()); } }

Security

If you discover any security related issues, please email open.source@pllano.com instead of using the issue tracker., (*21)

License

The MIT License (MIT). Please see LICENSE for more information., (*22)

The Versions

20/12 2017

dev-master

9999999-dev https://github.com/pllano/csv

Read very large CSV files in parts

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

csv read parts

11/12 2017

1.0.2

1.0.2.0 https://github.com/pllano/csv

Read very large CSV files in parts

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

csv read parts