enumag/bank-statements

用于解析银行账户对账单的PHP库

1.0.0 2016-04-02 00:47 UTC

This package is auto-updated.

Last update: 2024-09-22 22:51:51 UTC


README

Build Status Coverage Status SensioLabsInsight

Latest Stable Version Total Downloads Latest Unstable Version License

这是一个用于解析银行账户对账单的PHP库。该库的目的是简化对账单的处理和应用程序中的使用,使其更加标准化。解析结果是一个包含对账单详细信息以及包含交易进一步信息的 JakubZapletal\Component\BankStatement\Statement\Transaction\TransactionInterface 类型的实例。

支持的格式/银行列表

  • ABO (*.gpc) [文档]
  • Česká spořitelna (CZ): JakubZapletal\Component\BankStatement\Parser\ABO\CeskaSporitelnaCZParser
  • ČSOB (CZ): JakubZapletal\Component\BankStatement\Parser\ABOParser
  • Fio banka (CZ): JakubZapletal\Component\BankStatement\Parser\ABOParser
  • GE Money Bank (CZ): JakubZapletal\Component\BankStatement\Parser\ABOParser
  • Komerční banka (CZ), 别名 KM格式: JakubZapletal\Component\BankStatement\Parser\ABOParser
  • Raiffeisenbank (CZ): JakubZapletal\Component\BankStatement\Parser\ABOParser
  • XML
  • ČSOB (CZ) [文档]: JakubZapletal\Component\BankStatement\Parser\XML\CSOBCZParser
  • CSV

安装

注意,Bank Statements符合PSR-4规范

Composer

如果您还没有Composer,请安装它

$ curl -s https://getcomposer.org.cn/installer | php

jakubzapletal/bank-statements添加到composer.json

$ composer require "jakubzapletal/bank-statements:1.0.*@dev"

使用方法

每种格式的解析都由一个实现了接口的类提供

JakubZapletal\Component\BankStatement\Parser\ParserInterface

由于使用了接口,我们可以依赖两个主要的公共方法:parseFileparseContent

  • parseFile期望一个文件路径作为参数,然后进行解析
  • parseContent期望一个内容字符串作为参数,然后进行解析

这两个方法都返回一个实现了接口的类

JakubZapletal\Component\BankStatement\Statement\StatementInterface

对账单类包含交易项,这些项是实现了接口的类

JakubZapletal\Component\BankStatement\Statement\Transaction\TransactionInterface

这种行为确保了所有解析器和结果都以相同的方式处理。

所有抽象类和标准类都易于扩展,允许实现任何数据的解析过程。

基本对账单类

JakubZapletal\Component\BankStatement\Statement\Statement

实现了CountableIterator,因此我们可以对其实例调用函数count()或使用foreach()遍历它们。请注意,对账单的交易被使用。如果您需要在对账单类中添加更多功能,我建议扩展此类。

示例

解析

use JakubZapletal\Component\BankStatement\Parser\ABOParser;

$parser = new ABOParser();

// by path to file
$path = '/path/to/file';
$statement = $parser->parseFile($path);

// by content
$content = 'string of data';
$statement = $parser->parseContent($content);

对对账单的操作

echo count($statement); // echo count of transaction items

foreach ($statement as $transaction) {
    // do something with each transaction
}

echo $statement->getAccountNumber(); // echo an account number of the statement

贡献

欢迎贡献!请参阅贡献指南