belguinan/csv-simple-reader
Composer 安装命令:
composer require belguinan/csv-simple-reader
包简介
A lightweight, zero-dependency PHP library for reading, writing, and exporting CSV files. Works with PHP 5.4 and above.
README 文档
README
A lightweight, zero-dependency PHP library for reading, writing, and exporting CSV files. Works with PHP 5.4 and above.
Features
- 🚀 Simple and intuitive API
- 📖 Memory-efficient reading of large files
- 💾 Export data to CSV files
- ⬇️ Direct CSV downloads
- 🔒 Secure file handling
- 0️⃣ Zero dependencies
- ✅ PHP 5.4+ compatible
Installation
Install via Composer:
composer require belguinan/csv-simple-reader
Quick Start
use Belguinan\CsvExporter; // Initialize $csv = new CsvExporter(); // Read CSV file foreach ($csv->readFrom('path/to/file.csv') as $row) { var_dump($row); }
Usage Guide
Reading CSV Files
$csv = new CsvExporter(); // Read file line by line (memory efficient) foreach ($csv->readFrom('input.csv') as $row) { // $row is an array containing the CSV columns var_dump($row); }
Creating CSV Files
// Your data as array $data = array( array('John', 'Doe', 'john@example.com'), array('Jane', 'Smith', 'jane@example.com') ); // Optional headers $headers = array('First Name', 'Last Name', 'Email'); // Create CSV exporter $csv = new CsvExporter($data, $headers); // Process and save $csv->process()->save('output.csv');
Downloading CSV Files
// Create and force download $csv = new CsvExporter($data, $headers); $csv->process()->download('users-export');
Chaining Operations
// Process, download, and save in one go $csv->process() ->download('export-file') ->save('backup/export.csv');
Error Handling
The library throws Exception for various error conditions. It's recommended to wrap operations in try-catch blocks:
try { $csv = new CsvExporter($data); $csv->process()->save('output.csv'); } catch (\Exception $e) { echo "Error: " . $e->getMessage(); }
Common Exceptions
- File not found
- File not readable
- Directory not writable
- Invalid CSV data structure
- Memory stream errors
Best Practices
-
Reading Large Files
// Good - Memory efficient foreach ($csv->readFrom('large.csv') as $row) { processRow($row); }
-
Setting Headers
// Explicit headers $headers = array('ID', 'Name', 'Email'); $csv = new CsvExporter($data, $headers); // Auto-generated headers from data keys $csv = new CsvExporter($data);
-
Error Handling
try { $csv->readFrom('file.csv'); } catch (\Exception $e) { log_error($e->getMessage()); // Handle error appropriately }
Examples
Export Users Table
// Fetch users from database $users = $db->query('SELECT id, name, email FROM users'); // Convert to array $data = array(); while ($row = $users->fetch_assoc()) { $data[] = $row; } // Export $csv = new CsvExporter($data); $csv->process()->download('users-export');
Process CSV in Chunks
$csv = new CsvExporter(); $chunk = array(); foreach ($csv->readFrom('large-file.csv') as $index => $row) { $chunk[] = $row; // Process in chunks of 1000 if (count($chunk) >= 1000) { processChunk($chunk); $chunk = array(); } } // Process remaining rows if (!empty($chunk)) { processChunk($chunk); }
License
MIT License - feel free to use this library in your projects.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Support
For bugs and feature requests, please use the GitHub issue tracker.
belguinan/csv-simple-reader 适用场景与选型建议
belguinan/csv-simple-reader 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 696 次下载、GitHub Stars 达 0, 最近一次更新时间为 2020 年 01 月 22 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「csv」 「import」 「export」 「writer」 「reader」 「csv-reader」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 belguinan/csv-simple-reader 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 belguinan/csv-simple-reader 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 belguinan/csv-simple-reader 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Bulk export of sylius resources
Parse use statements for a reflection object
Tool for copying data from a production database to a dev database. Also useful for making backups of production databases.
A fork of konnco/filament-import with support of Laravel 11 since the default importer of Filament 3 is nonsense for basic use case.
Yii2 export extension
laravel facade to read/write csv file
统计信息
- 总下载量: 696
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 11
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-01-22