我需要用最少 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 数组,但输出会得到堆栈。 是否有其他编码方法,因此输出不会出现减速? 提前谢谢。

解决方法

正如 Barmar 所指出的,您背靠背执行了过多的 http 请求。可能会研究批处理 curl 请求。

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