简单存档 / microdata
从HTML中提取账单数据(支持Microdata和JSON-LD)
v3.0.0
2024-06-22 23:03 UTC
Requires
- php: ^7.0 || ^8.0
- commerceguys/intl: ~1.0
- jkphl/micrometa: ~3.0
- nesbot/carbon: ~1.25|~2.0
README
此包提供了一种简单的方法,可以从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)。有关更多信息,请参阅许可证文件。