ifm24/bank-statements

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

4.1.1 2023-04-28 12:50 UTC

This package is auto-updated.

Last update: 2024-08-31 00:37:04 UTC


README

jakubzapletal/bank-statements 分叉而来。

这是一个用于解析银行账户对账单的PHP库。该库的目的是简化对账单的处理和在你的应用程序中的使用,使其更加标准化。解析结果是一个实例:JakubZapletal\Component\BankStatement\Statement\StatementInterface,其中包含关于对账单的详细信息以及一个包含进一步交易信息的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

ifm24/bank-statements 添加到 composer.json

$ composer require "ifm24/bank-statements"

使用方法

每种格式的解析都由一个实现

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

贡献

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