liberu-genealogy/php-gedcom

适用于PHP 8.0+的GEDCOM文件解析器(读+写)

v2.0.6 2024-08-25 12:34 UTC

This package is auto-updated.

Last update: 2024-09-26 14:26:28 UTC


README

Latest Stable Version Tests

需求

  • php-gedcom 1.0+ 需要 PHP 8.3(或更高版本)。

安装

安装php-gedcom有两种方式。

Composer

要使用Composer在项目中安装php-gedcom,只需将以下require行添加到项目的composer.json文件中

{
    "require": {
        "liberu-genealogy/php-gedcom": "2.0.*"
    }
}

下载和__autoload

如果您不使用Composer,可以从GitHub下载源代码的存档并将其提取到您的项目中。您需要设置文件的自加载器,除非您愿意逐个要求所有必需的文件,这是一个繁琐的过程。以下内容应该足够

spl_autoload_register(function ($class) {
    $pathToGedcom = __DIR__ . '/library/'; // TODO FIXME

    if (!substr(ltrim($class, '\\'), 0, 7) == 'Gedcom\\') {
        return;
    }

    $class = str_replace('\\', DIRECTORY_SEPARATOR, $class) . '.php';
    if (file_exists($pathToGedcom . $class)) {
        require_once($pathToGedcom . $class);
    }
});

用法

要解析GEDCOM文件并将其加载到PHP对象集合中,只需实例化一个新的Parser对象,并传递要解析的文件名。生成的Gedcom对象将包含在提供的GEDCOM文件中存储的所有信息

$parser = new \Gedcom\Parser();
$gedcom = $parser->parse('tmp.ged');

foreach ($gedcom->getIndi() as $individual) {
    $names = $individual->getName();
    if (!empty($names)) {
        $name = reset($names); // Get the first name object from the array
        echo $individual->getId() . ': ' . $name->getSurn() . ', ' . $name->getGivn() . PHP_EOL;
    }
}

贡献

欢迎提交pull请求和问题。

许可证

MIT许可证(见License.md)。这意味着您必须保留版权声明和许可通知,适用于所有副本或此软件的大部分内容。

贡献者