我有以下代码:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $sourceURL);
curl_setopt($ch, CURLOPT_FILE, $dl_destination);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$curlResult = curl_exec($ch);
$cError = curl_error($ch);
curl_close($ch);
这似乎在脚本中的一个位置正常工作,而不是另一个位置。在问题区域,它将文件内容输出到屏幕并保存文件。如果没有CURLOPT_RETURNTRANSFER,它将保存文件并将内容输出到屏幕。如果添加CURLOPT_RETURNTRANSFER,因为我的读取应该有效,它不会保存文件,而是将内容放入$ curlResult。我只是需要它来保存文件而不输出到屏幕。
答案 0 :(得分:0)
使用CURLOPT_RETURNTRANSFER
获取数据并将其保存在变量中。
现在,使用file_put_contents
将数据写入文件。
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $sourceURL);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$curlResult = curl_exec($ch);
$cError = curl_error($ch);
curl_close($ch);
if(empty($cError)){
if(file_put_contents($dl_destination,$curlResult)){
echo "Data written to file successfully";
}else{
die("Could not write to file.");
}
}else{
die("Curl Error: " .$cError);
}