2013-10-08 31 views
1

我使用curl完成了此代理。我無法成功獲取要在頁面中顯示的xml。我想在本地保存副本沒有成功,我想(已在下面的完整代碼):如何保存通過curl獲取的xml文件?

$fp = fopen('data.xml', 'w'); 
fwrite($fp, $xml); 
fclose($fp); 

但我沒有錯誤和一個空的「data.xml中」文件......如何這樣做? 謝謝

[編輯2]:解決了,我剛添加了標誌:curl_setopt($session, CURLOPT_RETURNTRANSFER, true); 並完成! 。(代碼更新下面 的代碼與@Spell建議

define ('HOSTNAME', 'http://www.camara.gov.br'); 


$path = "http://www.camara.gov.br/SitCamaraWS/Deputados.asmx/ObterDeputados?"; 
$url = HOSTNAME.$path; 

$session = curl_init($path); 
curl_setopt($session, CURLOPT_HEADER, false); 
curl_setopt($session, CURLOPT_HTTPGET, true); 
curl_setopt($session, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($session, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36'); 

header("Content-Type: text/xml"); 


$xml = curl_exec($session); 


curl_close($session); 

file_put_contents ('./data.xml', $xml); 
?> 

回答

3

你可以使用file_put_contents功能

你的情況,這將是:

// Make the call 
$xml = curl_exec($session); 


// done, shutDown. 
curl_close($session); 

if (file_put_contents ('./data.xml', $xml) !== false) { 
    echo 'Success!'; 
} else { 
    echo 'Failed'; 
} 

而且

但我沒有錯誤和一個空的「data.xml」文件

下一次提供錯誤

+0

嗨@Spell,感謝您的幫助。它幾乎做到了,但我仍然得到一個空文件......我用現在正在運行的代碼編輯了問題,並帶有一個鏈接。此外,如果我離開回聲,它似乎將字符串追加到XML導致錯誤的結尾,所以我現在剝離它。你能再看看這個嗎?謝謝 –

+0

缺少'curl_setopt($ session,CURLOPT_RETURNTRANSFER,true);'上面編輯的代碼。解決了。謝謝 –

+0

樂意提供幫助。請設置一個正確的答案:) – Spell