使用simlpeXML和php解析许多远程文件的最佳方法

时间:2011-03-31 18:21:03

标签: php xml simplexml

我有一个脚本循环遍历许多基于URL的XML文件来比较值。目前有超过50个单独的XML文件,但这个数字将增加到数百个。比较值很简单,并从字符串中检索。

XML文件结构合理,体积小,10-26KB,我只从基于网址的API中获取1-2个值。

例如:

foreach(); //loop starts, left out details

$value1 = "some_number";

//load all the xml

$request_url = "example.com/file.xml";
$request_url = urlencode($request_url);
$response_xml = @simplexml_load_file($request_url);

$res =  $response_xml;  
$version = $res->version;

if ($value1 > $version)
echo "yay";

endforeach;  //end loop

现在问题是,当bean获得更多20个请求时,这变得很慢,我想象有几百个它慢慢爬行。

有更好的方法或更快的方法吗?

1 个答案:

答案 0 :(得分:1)

由于获取远程文件是迭代中最慢的部分,因此它是第一个开始提高性能的地方。我将使用cURL来获取一个交换中的所有文件,并在远程会话完成后处理数据。 cURL提供了curl_multi_exec。 php.net/manual/en/function.curl-multi-exec.php,你可以提供多个卷曲句柄。如果可能,这将重新使用您的连接,您可以同时运行请求。