1

我使用 curl 完成了这个代理。它成功地获取了要在页面中显示的 xml。我试图在本地保存副本但没有成功,我试过(已经在下面的完整代码中):

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

但我没有收到任何错误和一个空的“data.xml”文件……这怎么办?谢谢

[EDIT2]:解决了,我刚刚添加了标志: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); 
?>
4

1 回答 1

4

你可以只使用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”文件

下次提供错误

于 2013-10-08T13:15:18.750 回答