Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅获取大型xml对象的前N个元素_Php_Xml_Performance_Curl_Optimization - Fatal编程技术网

Php 仅获取大型xml对象的前N个元素

Php 仅获取大型xml对象的前N个元素,php,xml,performance,curl,optimization,Php,Xml,Performance,Curl,Optimization,我正在集成一个第三方API,它为每次搜索返回大约20MB的数据。它返回大约500个项目。这对我来说太多了。所以,我只想使用前50项 我的尝试: $xml = simplexml_load_string($apiRequest); $object = json_decode(json_encode($xml)); $items = array_slice($object, 0, 50); API的响应时间大约为50秒(当我在postman上测试时)。收到响应后,将其转换为std对象并执行

我正在集成一个第三方API,它为每次搜索返回大约20MB的数据。它返回大约500个项目。这对我来说太多了。所以,我只想使用前50项

我的尝试:

$xml    = simplexml_load_string($apiRequest);
$object = json_decode(json_encode($xml));
$items  = array_slice($object, 0, 50);

API的响应时间大约为50秒(当我在postman上测试时)。收到响应后,将其转换为std对象并执行其他计算会大大降低速度。所以,我想加快速度。我想将收到的XML响应拆分为前50项,然后将其转换为std对象。有什么办法吗?非常感谢其他建议。

如果我要解析如此巨大的XML响应,我会使用流解析器

我没有这方面的经验,但谷歌的快速搜索指向了这一点


试一试,如果你有具体问题,我们可以尝试解决

感谢@avk dai的链接。most API允许您添加一个参数来限制结果的数量,这样您不仅可以缩短转换时间,还可以缩短接收时间。请避免将其序列化为JSON并直接读取XML。尝试使用XMLReader类。这是当前大文件的标准API。我已经与我的提供商@lukegv进行了通信,我无法限制结果的数量。所以,我面临着一个问题