如何使用php从url获取xml数据?

如何使用php从url获取xml数据?,php,arrays,xml,xml-parsing,Php,Arrays,Xml,Xml Parsing,我想用更少的内存从XML-URL远程获取数据,我正在使用simplexml\u load\u string(),但我不确定我的代码和XML提要包含大约980条记录那么,获取这些大数据并转换到array的最佳方法是什么 我的代码: $xmlURL = 'http://www.ironitekstil.com/store/xmlfeed/productsxml.aspx?xslt=picksel.xsl'; $c = curl_init(); curl_setopt($c, CURLOPT_RETU

我想用更少的内存从
XML-URL
远程获取数据,我正在使用
simplexml\u load\u string()
,但我不确定我的代码和
XML提要
包含大约
980条记录
那么,获取这些大数据并转换到
array
的最佳方法是什么

我的代码:

$xmlURL = 'http://www.ironitekstil.com/store/xmlfeed/productsxml.aspx?xslt=picksel.xsl';
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_URL, $xmlURL);
$contents = curl_exec($c);
curl_close($c);

if ($contents) {
  $xmlString = $contents;
  $xml = simplexml_load_string($xmlString);
  echo '<pre>';
  print_r($xml);
  //echo count($xml); // 980 records
  echo '</pre>';
}else {
  return FALSE;
}
$xmlURL='1http://www.ironitekstil.com/store/xmlfeed/productsxml.aspx?xslt=picksel.xsl';
$c=curl_init();
curl_setopt($c,CURLOPT_RETURNTRANSFER,1);
curl_setopt($c,CURLOPT_URL,$xmlURL);
$contents=curl_exec($c);
收尾费($c);
若有($contents){
$xmlString=$contents;
$xml=simplexml\u load\u字符串($xmlString);
回声';
打印(xml);
//回声计数($xml);//980条记录
回声';
}否则{
返回FALSE;
}

SimpleXML将把整个数据加载到内存中(它是一个DOM抽象层)。试试XMLReader。它可以打开URL并逐个标记地读取XML。当前节点(及其子节点)可以扩展为DOM。这允许您迭代外部节点(列表)并加载内部节点(记录)

您可以使用PHP Streamwrappers直接打开URL,也可以使用CURL获取URL并将其存储到本地文件中