2017-04-02 48 views
0

我想用更少的內存從遠程XML URL獲取數據,我正在使用simplexml_load_string(),但我不確定我的代碼和xml feed包含大約980 records,那麼獲取這些大數據並將其轉換爲array的最佳方法是什麼?如何從URL使用PHP獲取XML數據?

我的代碼:

$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; 
} 

回答

0

的SimpleXML將加載整個數據到存儲器(它是一個抽象DOM層)。試試XMLReader。它可以打開URL並通過標籤讀取XML標籤。當前節點(及其後代可以擴展爲DOM,這允許您迭代外部節點(列表)並加載內部部分(記錄)。

您可以使用PHP Streamwrappers直接打開URL或使用CURL提取並將其存儲到本地文件中。