Php 如何保存通过curl获取的xml文件?

Php 如何保存通过curl获取的xml文件?,php,xml,curl,Php,Xml,Curl,我使用curl完成了这个代理。无法成功获取要在页面中显示的xml。我试图在本地保存副本,但没有成功,我尝试了(已在下面的完整代码中): 但我没有得到任何错误和一个空的“data.xml”文件…如何才能做到这一点? 谢谢 [EDIT2]:解决了,我刚刚添加了标志:curl\u setopt($session,CURLOPT\u RETURNTRANSFER,true) 完成了!(更新代码如下) 带有@spell suggestion的代码 define ('HOSTNAME', 'http://w

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

但我没有得到任何错误和一个空的“data.xml”文件…如何才能做到这一点? 谢谢

[EDIT2]:解决了,我刚刚添加了标志:
curl\u setopt($session,CURLOPT\u RETURNTRANSFER,true)
完成了!(更新代码如下)
带有@spell suggestion的代码

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); 
?>

您只需使用
文件内容
功能即可

在您的情况下,它将是:

// 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”文件


下次提供错误时

您可以使用
文件内容
功能

在您的情况下,它将是:

// 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”文件


下次提供一个错误

Hi@Spell,谢谢你的帮助。它几乎成功了,但我还是得到了一个空文件…我用我现在正在运行的代码编辑了这个问题,还有一个指向它的链接。另外,如果我让echo保持打开状态,它似乎会将字符串附加到xml的末尾,从而导致错误,所以我暂时删除了它。你能有一个简单的提示吗请再看一遍,谢谢你,因为它缺少curl\u setopt($session,CURLOPT\u RETURNTRANSFER,true)
上面编辑的代码。已解决。谢谢@Spell,谢谢你的帮助。它几乎成功了,但我还是得到了一个空文件…我用我现在运行的代码编辑了这个问题,并带有一个指向它的链接。另外,如果我保持echo打开,它似乎会将字符串附加到xml的末尾,从而导致错误,所以我现在将其删除。可以吗请您再看一次?谢谢您缺少
curl\u setopt($session,CURLOPT\u RETURNTRANSFER,true);
上面编辑的代码。已解决。谢谢