GitHub - Rakdar/reactphp-csv: Read/Write CSV-Data from ReactPHP-Streams

Uses PHPs internal fgetcsv function to parse data into an array or vice versa to file/stream.

$ composer require rakdar/reactphp-csv
$loop = React\EventLoop\Factory::create();

$inputFd = fopen('country-codes.csv', 'r');
$input = new Rakdar\React\Csv\Reader(
    new React\Stream\ReadableResourceStream($inputFd, $loop)
);

$input->on('data', function ($field) {
    echo $field[10] . PHP_EOL;
});

$loop->run();
$loop = React\EventLoop\Factory::create();

$outputFp = fopen('testfile.csv', 'w');
$output = new Rakdar\React\Csv\Writer(
    new React\Stream\WritableResourceStream($outputFp, $loop)
);
$output->write(['Header 1', 'Header 2', 'Header 3']);
$output->write(['Col 1.1', 'Col 1.2', 'Col 1.3']);
$output->write(['Col 2.1', 'Col 2.2', 'Col 2.3']);

$output->close();

$loop->run();