diouro / csv-lib
一个简单的面向对象的CSV库,用于读取CSV文件和用于http://sooho.com.br网站的文章。目前这个库只能读取数据。未来版本可能会实现新方法,例如通过ResultSet返回数据、数据过滤、按列过滤和写操作。
1.0.0
2021-10-13 22:04 UTC
Requires
- php: >=5.5
This package is auto-updated.
Last update: 2024-09-14 05:24:33 UTC
README
一个简单的面向对象的CSV库,用于读取CSV文件和用于http://sooho.com.br网站的文章。目前这个库只能读取数据。未来版本可能会实现新方法,例如通过ResultSet返回数据、数据过滤、按列过滤和写操作。
如何使用
请随意下载、使用、修改或提出改进建议。使用exemplo_leitura.php
文件作为参考。
实例化类
使用此库的第一步是实例化CSV类。整个库都使用命名空间,以避免与其他系统冲突——因为Csv和Arquivo是常见的名称。首先插入库并使用以下代码实例化类:
# Incluindo a biblioteca CSV require_once __DIR__ .'/src/CsvReader.php'; # Instanciando o Objeto de Manipulação de dados $csv = new CsvReader( 'movimentos_financeiros.csv',',','"' );
Csv
类总共接收3个参数。
- CSV文件路径
- 列分隔符
- 字符串标识符,如果没有传递最后两个参数,则库将默认使用";"作为列分隔符和"\""作为字符串标识符。
数据读取
数据读取是通过CsvReader
类的read()
方法进行的。此方法也可以接收上述提到的3个参数。
# obtendo os dados e realizando um Loop # com foreach foreach( $csv->read() as $linha ) var_dump( $linha );
其他可能性
有一些额外的功能可能有用。如下所示!
/** * Caminho e Nome do Arquivo * saida: string; algo como 'teste_importe__.csv'; */ echo $csv->filepath() ; /** * Número total de registros * dentro do arquivo * saida: valor int; */ echo $csv->numRows() ; /** * Obtendo o tamanho do arquivo * formatado em B,KB,MB,GB. * saida: Array('size','unit'); */ $size = $csv->size(); echo $size['size'] . $size['unit'] ; /** * Obtendo a data em que o arquivo foi * Modificado. * Nota: Precisa configurar em seu sistema * o timezone com date_default_timezone_set(); * saida: string; algo como 10/04/2017 19:42:02 */ echo $csv->dataModificacao() ; /** * Existe a data em que o arquivo foi acessado * por ultimo. * saida: string; algo como 10/04/2017 19:42:02 */ echo $csv->dataAcesso() ; /** * Você também pode transformar o resultado final * em um objeto, se assim desejar e achar mais * confortavel o uso de oop. * A conversão funciona pelo proprio PHP via typecast. */ foreach( $csv->ler() as $linha ){ $linha = (object) $linha; var_dump( $linha ); }
总结
希望这个简单的类对使用它的人有所帮助。如果您需要更多信息,请访问http://sooho.com.br,因为它包含有关库如何制作的更详细材料。
谢谢。Wanderlei Santana sans.pds@gmail.com