简单存档/microdata

从HTML中提取账单数据(支持Microdata和JSON-LD)

v3.0.0 2024-06-22 23:03 UTC

This package is auto-updated.

Last update: 2024-09-22 23:33:36 UTC


README

Software License

此包提供了一种简单的方法,可以从HTML文档中的Microdata和JSON-LD中提取账单数据。

要求

PHP 7.0及以上。

安装

您可以通过Composer安装此包。运行以下命令

composer require einfacharchiv/microdata

用法

从HTML中提取账单数据非常简单。

如果某个项不存在,该方法返回null

$html = '<!doctype html><html lang="en"><head>...';

$microdata = new Microdata($html);

// Get all invoice items
foreach ($microdata->getItemsByType('Invoice') as $item) {
    // Available methods
    (string) $item->getBillingPeriod() ?: null;
    $item->getConfirmationNumber();

    if ($item->getCustomer()) {
        (string) $item->getCustomer()->getIdentifier() ?: null;
        $item->getCustomer()->getName();

        if ($item->getCustomer()->getAddress()) {
            $item->getCustomer()->getAddress()->getStreetAddress();
            $item->getCustomer()->getAddress()->getPostOfficeBoxNumber();
            $item->getCustomer()->getAddress()->getPostalCode();
            $item->getCustomer()->getAddress()->getAddressLocality();
            $item->getCustomer()->getAddress()->getAddressRegion();
            (string) $item->getCustomer()->getAddress()->getAddressCountry() ?: null;
        }

        $item->getCustomer()->getEmail();
        $item->getCustomer()->getTelephone();
        $item->getCustomer()->getUrl();

        $item->getCustomer()->getTaxId();
        $item->getCustomer()->getVatId();
    }

    (string) $item->getPaymentDueDate() ?: null;
    (string) $item->getPaymentMethod() ?: null;
    $item->getPaymentMethodId();
    (string) $item->getPaymentStatus() ?: null;

    if ($item->getProvider()) {
        $item->getProvider()->getName();

        if ($item->getProvider()->getAddress()) {
            $item->getProvider()->getAddress()->getStreetAddress();
            $item->getProvider()->getAddress()->getPostOfficeBoxNumber();
            $item->getProvider()->getAddress()->getPostalCode();
            $item->getProvider()->getAddress()->getAddressLocality();
            $item->getProvider()->getAddress()->getAddressRegion();
            (string) $item->getProvider()->getAddress()->getAddressCountry() ?: null;
        }

        $item->getProvider()->getEmail();
        $item->getProvider()->getTelephone();
        $item->getProvider()->getUrl();

        $item->getProvider()->getTaxId();
        $item->getProvider()->getVatId();
    }

    if ($item->getTotalPaymentDue()) {
        $item->getTotalPaymentDue()->getAmount(); // Returns an array with 'amount' and 'currency'
    }

    (string) $item->getIdentifier() ?: null;
    $item->getName();
    $item->getUrl();
}

贡献

贡献是欢迎的

我们通过Github上的Pull Requests接受贡献。

如果您在使用此包时遇到困难?发现了bug?或者有关于改进的一般性问题和建议?请自由地在GitHub上创建问题,我们将尽快解决。

如果您发现了一个安全问题,请通过support@einfacharchiv.com发送电子邮件,而不是使用问题跟踪器。

编码愉快!

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件