simbiat / lodestone-parser
FFXIV Lodestone解析器,PHP编写
Requires
- php: ^8.3
- ext-curl: *
- ext-mbstring: *
Replaces
- simbiat/lodestone-php: *
- dev-main
- 1.1.18+20240716
- 1.1.17+20240714
- 1.1.16+20240628
- 1.1.15+20240626
- 1.1.14+20240616
- 1.1.13+20240521
- 1.1.12+20240512
- 1.1.11+20240509
- 1.1.10+20240427
- 1.1.9+202400409
- 1.1.8+20240102
- 1.1.7+20221010
- 1.1.6+20220815
- 1.1.5+20220415
- 1.1.4+20211204
- 1.1.3+20211203
- 1.1.2+20211202
- 1.1.1+20211130
- 1.1.0+20211130
- 1.0.10+20211121
- 1.0.9+20211031
- 1.0.8+20210603
- 1.0.7+20210527
- 1.0.6+20210525
- 1.0.5+20210506
- 1.0.4+20210505
- 1.0.3+20210426
- 1.0.2+20210408
- 1.0.1+20210314
- 1.0.0+20210311
This package is auto-updated.
Last update: 2024-09-16 04:48:00 UTC
README
这是一个PHP库,用于直接从FFXIV Lodestone网站解析数据,最初基于由@viion开发的版本,但现在已完全重写。之前是其分支。
目标是提供一个非常快速且轻量级的库,它是为了解析尽可能多的字符而构建的,重点是:低内存占用和微时间解析方法。
注意
- 此库解析实时Lodestone网站。该网站位于东京。
- 此库在PHP 8及以上版本构建,请使用最新版本,因为这可以提高性能。
有什么不同?
这是与@viion原始库的不同之处。
- 它具有不同的代码结构,旨在减少很少使用或不必要的函数,并进行一些标准化。
- 使用正则表达式而不是完整的HTML解析以提高速度(并以数组而不是对象作为结果)。这并不意味着这总是比使用基于Symphony的函数更快,但平均来说是这样的。
- 更多搜索查询的过滤器。
- 尽可能返回更多可能有用的信息。
- 尝试支持多语言。某些过滤器甚至支持Lodestone上实际使用的“名称”(而不仅仅是ID)。
- 能够“链接”不同类型的实体,请求一个对象中的多个页面。例如,您可以在同一个对象中获取公司及其成员的详细信息。
设置
可以设置自己的CURL UserAgent:只需使用->setUseragent('useragent')
。
也可以通过->setLanguage('na')
更改LodeStone语言。接受的语言值是na
、eu
、jp
、fr
、de
。
可以通过->setBenchmark(true)
使用基准测试来获取每个迭代的解析时间。
错误处理
在新的概念中,致命错误通常只可能在HTTP请求期间发生。为了不破坏“链接”功能,它们在代码中被软处理,并报告给->errors
和->lasterror
数组。本质上,当发生错误时,您将简单地得到特定实体的一个空结果,并且它不会被添加到输出中。
要获取最后一个错误,可以使用->getLastError($close)
。要获取所有错误的列表,请使用-getErrors($close)
。$close
是一个预期的布尔值,如果设置为true
,将关闭cURL句柄。默认设置为false
,基于假设您只是使用这些进行某种类型的验证。
所有页面
所有接受page
编号的解析器都支持0
值,这将返回所有页面(即递归运行相应的解析器)。page
的默认值设置为1
以限制使用的资源。
测试脚本
存在一个 \Simbiat\LodestoneTest
类,用于测试在一般场景下运行所有可用功能。运行它以获取表格格式的输出格式化和每种测试类型的样本。注意,最后两个测试是“错误测试”,因此其结果有意颠倒,以保证报告的一致性。另外,由于成就测试有意将 details
设置为 true 并以 All pages
模式运行 Free Company 成员,因此其基准结果将以时间列表的形式呈现。
获取结果
要获取以下解析器的结果,您需要运行 ->getResult($close)
,这将返回包含结果的数组。$close
是一个预期的布尔值,如果设置为 true
,则将关闭 cURL 处理。默认设置为 true
,基于假设,获取结果将是您的最后一个动作。
注意:如果您根本未调用 ->getResult($close)
或仅以 false
调用它,建议显式取消设置您正在使用的对象,除非您需要释放资源。