卷曲输出到屏幕或不保存为文件

时间:2018-05-19 06:21:08

标签: php curl

我有以下代码:

$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。我只是需要它来保存文件而不输出到屏幕。

1 个答案:

答案 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);
}