blacksenator/fritzdbf

使用 PHP 生成 dbase 文件的简单生成器

v1.4 2021-03-22 12:11 UTC

This package is auto-updated.

Last update: 2024-09-22 20:16:28 UTC


README

该类提供操作 AVM 的地址数据库 FRITZ!Adr 的函数。FRITZ!Adr 是为较为传统的程序 FRITZ!Fon、FRITZ!Data 和 FRITZ!Com 提供的地址簿和电话簿。但仍被用于 FRITZ!fax (fax4box)

alt text

FRITZ!Adr 中记录编辑窗口的样本图像(版权©由 AVM 拥有)

数据库是 dBASE III 文件,默认名称为 'FritzAdr.dbf'。

使用此类有三个原因

  1. 由于当前 PHP 版本和平台难以实现过时的 dBase 扩展 (PECL)。
  2. 因为只需要写一个具有定义结构的文件(无需读取或操作记录中的数据或其他任何可能的情况)
  3. 最后,因为它允许将数据写入内存而不是本地存储的文件。因此,可以直接在目标目录中通过 ftp 创建文件。

对几个 FritzAdr.dbf 文件的数据库分析令人惊讶地显示出两种变体,例如 19 个字段中的 21 个。最终,21 版本对我有效(默认)。

功能

  • 在内存中创建 dBase 文件,而不是直接写入文件(与过时的 PECL 版本不同)
  • 功能有限:只有一个修改函数:addRecord() 除此之外还有 getDatabase() 来接收生成的数据库!如果您认为需要更多功能,请分支此存储库并自由贡献!

要求

安装

您可以通过 Composer 安装它

"require": {
    "blacksenator/fritzdbf": "dev-master#1.0"
},

或者

git clone https://github.com/blacksenator/fritzdbf.git

用法

使用字段数设置新实例

$fritzDbf = new fritzdbf(19);    // number of fields

追加记录

$fritzDbf->addRecord(['NAME' => 'John', 'VORNAME' => 'Doe']);

接收数据

$fileData = $fritzDbf->getDatabase());

示例

use blacksenator\fritzdbf\fritzdbf;

$newData = ['BEZCHNG' => 'Maria Mustermann',   // Feld 1
            'FIRMA'   => 'Bundesdruckerei',
            'NAME'    => 'Mustermann',
            'VORNAME' => 'Erika',
            'TELEFON' => '03025980'
    ];

$fritzDbf = new fritzdbf();         // using default value 21
$fritzDbf->addRecord($newData);
file_put_contents('FritzAdr.dbf', $fritzDbf->getDatabase());

或直接通过 ftp(我编写此代码的原因)

use blacksenator\fritzdbf\fritzdbf;

$newData = ['BEZCHNG' => 'Max Mustermann',   // Feld 1
            'FIRMA'   => 'Bundesdruckerei',
            'NAME'    => 'Mustermann',
            'VORNAME' => 'Max',
            'TELEFON' => '03025980'
    ];

$ftp_conn = ftp_connect($ftpserver);
ftp_login($ftp_conn, $user, $password);
ftp_chdir($ftp_conn, $destination);
$memstream = fopen('php://memory', 'r+');

$fritzDbf = new fritzdbf();
$fritzDbf->addRecord($newData);

$memstream = $fritzDbf->getDatabase();
rewind($memstream);
ftp_fput($ftp_conn, 'FritzAdr.dbf',  $memstream, FTP_BINARY);

许可证

此脚本在 MIT 许可下发布。

作者

版权© 2019 - 2021 Volker Püschel