1. Go to this page and download the library: Download silarhi/cfonb-parser library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
silarhi / cfonb-parser example snippets
use Silarhi\Cfonb\Cfonb120Reader;
$reader = new Cfonb120Reader();
//Gets all statements day by day
foreach($reader->parse('My Content') as $statement) {
if ($statement->hasOldBalance()) {
echo sprintf("Old balance : %f\n", $statement->getOldBalance()->getAmount());
}
foreach($statement->getOperations() as $operation) {
//Gets all statement operations
}
if ($statement->hasNewBalance()) {
echo sprintf("New balance : %f\n", $statement->getNewBalance()->getAmount());
}
}
use Silarhi\Cfonb\Cfonb120Reader;
$reader = new Cfonb120Reader();
$content = file_get_contents('/path/to/cfonb120-file.txt');
foreach($reader->parse($content) as $statement) {
// Process each daily statement
echo "Statement date: " . $statement->getOldBalance()->getDate()->format('Y-m-d') . "\n";
}
use Silarhi\Cfonb\Cfonb240Reader;
use Silarhi\Cfonb\Banking\Transfer;
$reader = new Cfonb240Reader();
foreach($reader->parse('My Content') as $transfer) {
assert($transfer instanceof Transfer);
}
use Silarhi\Cfonb\Cfonb240Reader;
$reader = new Cfonb240Reader();
foreach($reader->parse($content) as $transfer) {
// Access transfer header information
$header = $transfer->getHeader();
echo "Transfer Date: " . $header->getPrevTransactionFileDate()->format('Y-m-d') . "\n";
echo "Bank Code: " . $header->getRecipientBankCode1() . "\n";
echo "Account: " . $header->getRecipientAccountNumber1() . "\n";
// Process all transactions in the transfer
foreach($transfer->getTransactions() as $transaction) {
echo "Transaction Date: " . $transaction->getSettlementDate()->format('Y-m-d') . "\n";
echo "Amount: " . $transaction->getTransactionAmount() . "\n";
echo "Recipient: " . $transaction->getRecipientName1() . "\n";
echo "Reference: " . $transaction->getPresenterReference() . "\n";
}
// Access transfer total
$total = $transfer->getTotal();
echo "Total Amount: " . $total->getTotalAmount() . "\n";
echo "Sequence Number: " . $total->getSequenceNumber() . "\n";
}
use Silarhi\Cfonb\Cfonb240Reader;
use Silarhi\Cfonb\Exceptions\ParseException;
use Silarhi\Cfonb\Exceptions\HeaderUnavailableException;
$reader = new Cfonb240Reader();
try {
$content = file_get_contents('/path/to/cfonb240-file.txt');
foreach($reader->parse($content) as $transfer) {
// Safely access optional header
try {
$header = $transfer->getHeader();
echo "Processing transfer from: " . $header->getRecipientBankCode1() . "\n";
} catch (HeaderUnavailableException $e) {
echo "Transfer header not available\n";
}
// Process transactions...
}
} catch (ParseException $e) {
echo "Failed to parse CFONB file: " . $e->getMessage() . "\n";
}
use Silarhi\Cfonb\CfonbReader;
use Silarhi\Cfonb\Banking\Statement;
use Silarhi\Cfonb\Banking\Transfer;
$reader = new CfonbReader();
foreach($reader->parseCfonb120('My Content') as $statement) {
assert($statement instanceof Statement);
}
foreach($reader->parseCfonb240('My Content') as $transfer) {
assert($transfer instanceof Transfer);
}
use Silarhi\Cfonb\Cfonb120Reader;
use Silarhi\Cfonb\Banking\Operation;
$reader = new Cfonb120Reader();
$statements = $reader->parse($content);
// Filter operations by amount
foreach ($statements as $statement) {
$largeOperations = array_filter(
$statement->getOperations(),
fn(Operation $op) => abs($op->getAmount()) > 1000
);
foreach ($largeOperations as $operation) {
echo "Large operation: {$operation->getAmount()} - {$operation->getLabel()}\n";
}
}