【发布时间】:2017-07-03 18:18:31
【问题描述】:
我正在集成一个第三方 API,它为每次搜索返回大约 20MB 的数据。它返回大约 500 个项目。这对我来说数据太多了。所以,我只想使用前 50 个项目。
我的尝试:
$xml = simplexml_load_string($apiRequest);
$object = json_decode(json_encode($xml));
$items = array_slice($object, 0, 50);
API 的大约响应时间约为 50 秒(当我在邮递员上测试时)。收到响应后,将其转换为 std 对象并进行其他计算会减慢很多。所以,我想加快速度。我想拆分收到的前 50 个项目的 XML 响应,然后将其转换为 std 对象。有什么办法吗?其他建议非常感谢。
【问题讨论】:
-
大多数API都允许你添加一个参数来限制结果的数量,这样你不仅可以提高转换时间,还可以提高接收时间。
-
请避免将其序列化为 JSON 并直接读取 XML。尝试使用 XMLReader 类。它是该大文件的当前标准 API。
-
我已经与我的提供者@lukegv 进行了沟通,我无法限制结果的数量。所以,我面临问题
标签: php xml performance curl optimization