首页 > 解决方案 > 我需要用最少 300 个元素解析巨大的 xml 数组,但是速度变慢了,我需要建议

问题描述

我正在尝试使用此代码来解析数组的 xml 元素。使用少量元素它可以正常工作,但是当元素超过 50 时,它就会出现问题。它会非常快地减慢速度,甚至进程会被堆栈。

$url=array('{250 domain names}')
foreach($url as $url){
    $xml = simplexml_load_file('http://data.alexa.com/data?cli=10&dat=snbamz&url='.$url);
    $rank=isset($xml->SD[1]->POPULARITY)?$xml->SD[1]->POPULARITY->attributes()->TEXT:0;
    $web=(string)$xml->SD[0]->attributes()->HOST;
    echo "$web ---> $rank<br>";
}

我需要至少 250 个域才能放入 php 数组,但输出会被堆栈。有没有其他的编码方法,所以输出看起来没有减慢?提前谢谢。

标签: phparraysforeach

解决方案


正如 Barmar 指出的那样,您背靠背地执行了大量的 http 请求。可能研究批处理 curl 请求。

https://www.php.net/manual/en/function.curl-multi-init.php


推荐阅读