almaudoh / csvtools
用于导入、解析和结构化CSV文件和数据的工具
dev-master
2024-06-14 22:35 UTC
Requires
- php: ^5.5.9 || ^7.0 || ^8.0
Requires (Dev)
- phpunit/phpunit: ^4.8
This package is auto-updated.
Last update: 2024-09-14 23:07:01 UTC
README
基于PHP的简单类,用于导入、解析和结构化CSV文件和数据。
它由两个文件组成,包含一个解析器和然后是一个映射器。解析器类解析CSV文件,映射器类允许将CSV文件头映射到另一组键。映射器类提供了对CSV数据的迭代和对每个列的数组访问。映射器实现了\Iterator
、\ArrayAccess
和\Countable
。
示例用法
filename.csv
NAME,MOBILE,MOBILE2,EMAIL,CITY,COUNTRY,BIRTH_DAY,WORK,NOTES,ACTIVE_ROLES,WANTED_ROLES
Jolly,2348030783839,,noreply@example.com,NoCity,NoCountry,38758,My work,My Notes,,
Nolly,2348038983839,2348030783839,noreply@example.com,NoCity,NoCountry,38758,My work,My Notes,,
,,,,,,,,,,
Polly,2348030783839,2348030783839,noreply@example.com,NoCity,NoCountry,38758,My work,My Notes,,
Solly,2348030783457,2348030783839,3reply@example.com,NoCity,NoCountry,38758,My work,My Notes,,
,,,,,,,,,,
,,,,,,,,,,
Lolly,2347090783839,,noreply@example.com,NoCity,NoCountry,38758,My work,My Notes,,
Wolly,2347090783234,,1reply@example.com,NoCity,NoCountry,38758,My work,My Notes,,
,,,,,,,,,,
$mapping = [ 'name' => 'NAME', 'phone' => 'MOBILE', 'phone2' => 'MOBILE2', 'email' => 'EMAIL', 'city' => 'CITY', 'country' => 'COUNTRY', 'dob' => 'BIRTH_DAY', 'address' => 'WORK', 'notes' => 'NOTES', 'roles' => 'ACTIVE_ROLES', 'additional_roles' => 'WANTED_ROLES', ]; $csv = (new CsvDataListMapper()) ->setSourceFile('filename.csv') ->setDataMap($mapping); foreach ($csv as $record) { write_to_database($record); print($record['name']); }
打印
Jolly
Nolly
Polly
Solly
Lolly
Wolly