mensbeam / microformats
一个微格式解析器
Requires
- php: >=7.3
- ext-dom: *
- ext-json: *
- mensbeam/html-parser: ^1.3
- symfony/polyfill-intl-idn: 1.*
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-27 19:02:19 UTC
README
一个通用的微格式解析器,适用于PHP。虽然它与php-mf2相似,但它结合了一个更准确的HTML解析器以及更一致的性能特征,并且被认为具有更少的错误。
用法
提供了从HTTP URL、文件、字符串以及HTML元素(一个\DOMElement
对象)解析的功能,以及将数据序列化为JSON的功能。为每个任务提供了一个MensBeam\Microformats
类的静态方法。
解析方法都返回一个作为数组的Microformats结构。在Microformats维基百科中包含了一些JSON格式的示例结构。
从URL解析
\MensBeam\Microformats::fromUrl(string $url, array $options = []): ?array
$url
参数是一个指向HTML资源的HTTP(S) URL;如果需要,将遵循重定向。如果无法获取资源,将返回null
。
$options
参数是Microformats解析器的选项列表。下面有详细信息。
从文件解析
\MensBeam\Microformats::fromFile(string $file, string $contentType, string $url, array $options = []): ?array
$file
参数是本地文件的路径。如果无法打开文件进行读取,将返回null
。
$contentType
参数是一个包含文件HTTP Content-Type
头值的字符串,如果已知。这可能用于向HTML解析器提供字符编码信息。
$url
参数是一个包含文件有效URL的字符串。这用于解析输入中的任何相对URL。
$options
参数是Microformats解析器的选项列表。下面有详细信息。
从字符串解析
\MensBeam\Microformats::fromString(string $input, string $contentType, string $url, array $options = []): array
$input
参数是要解析微格式的字符串。
$contentType
参数是一个包含字符串HTTP Content-Type
头值的字符串,如果已知。这可能用于向HTML解析器提供字符编码信息。
$url
参数是一个包含字符串有效URL的字符串。这用于解析输入中的任何相对URL。
$options
参数是Microformats解析器的选项列表。下面有详细信息。
从HTML元素解析
\MensBeam\Microformats::fromHtmlElement(\DOMElement $input, string $url, array $options = []): array
$input
参数是要解析微格式的元素。通常这将是documentElement
,但任何元素都可以被解析。
$url
参数是一个包含字符串有效URL的字符串。这用于解析输入中的任何相对URL。
$options
参数是Microformats解析器的选项列表。下面有详细信息。
序列化为JSON
\MensBeam\Microformats::toJson(array $data, int $flags = 0, int $depth = 512): string
由于Microformats数据表示为嵌套数组的结构,其中一些是关联的(在JSON术语中称为“对象”)且可能为空,因此在将它们序列化为JSON之前,有必要将这些空数组转换为PHP stdClass
对象。此方法在将结果传递给json_encode
函数之前执行这些转换。其参数与json_encode
相同。
选项
解析方法都可选地接受一个$options
数组作为参数。这些选项都是标志,用于实验性功能,或者用于不再默认使用的向后兼容功能。选项如下所示: