This package provides an easy way to extract billing data from Microdata and JSON-LD in an HTML document.
PHP 7.0 and later.
You can install this package via Composer. Run the following command:
composer require einfacharchiv/microdata
Extracting billing data from HTML is easy.
If an item is not present, the method returns 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();
}
Contributions are welcome.
We accept contributions via Pull Requests on Github.
Find yourself stuck using the package? Found a bug? Do you have general questions or suggestions for improvement? Feel free to create an issue on GitHub, we'll try to address it as soon as possible.
If you've found a security issue, please email support@einfacharchiv.com instead of using the issue tracker.
Happy coding!
The MIT License (MIT). Please see License File for more information.