https://github.com/ruslan-avantis/csv
Csv Reader
https://github.com/ruslan-avantis/csv
csv csv-reader
Last synced: about 2 months ago
JSON representation
Csv Reader
- Host: GitHub
- URL: https://github.com/ruslan-avantis/csv
- Owner: ruslan-avantis
- License: mit
- Created: 2017-12-11T11:11:58.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-12-20T16:21:41.000Z (about 8 years ago)
- Last Synced: 2025-07-27T15:05:20.294Z (6 months ago)
- Topics: csv, csv-reader
- Language: PHP
- Homepage: https://pllano.com/
- Size: 31.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Pllano CSV Reader
[](https://github.com/pllano/csv/releases)
[](LICENSE)
Read large data from csv files in parts in php
System Requirements
-------
You need **PHP >= 5.3*
Install
-------
Install `Csv Reader` using Composer.
```
$ composer require pllano/csv
```
or in composer.json
```
"require": {
"pllano/csv": "1.0.2"
}
```
Fast start => tests/FastStart.php
-------
Save the above code fragment as `test.php` in your Web root folder.
``` 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);
$records = $csv->Read();
$count = count($records);
if ($count >= 1) {
foreach ($records as $item) {
print_r($item);
print_r('
');
}
}
```
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';
$filename = 'test2.csv';
$csv = new Pllano\Csv\Reader($filename);
$csv->setItemStart(10); // start item - default: 1
$csv->setExecute(50); // amount - default: 0
$records = $csv->Read();
$item_start = $csv->getItemStart(); // returns 0
$count = count($records);
if ($count >= 1) {
foreach ($records as $key => $item) {
$real_key = $key + $item_start;
print_r($real_key);
print_r(' - ');
print_r($item);
print_r('
');
}
}
```
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('
');
}
}
$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 '';
}
if ($end >= $stop || $end >= $rows_total) {
print_r('
');
print_r('Memory, MB: '.$csv->getMemory());
print_r('
');
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.
License
-------
The MIT License (MIT). Please see [LICENSE](LICENSE) for more information.