Как сохранить файл с помощью curl и PHP?
Вы хотели что-то вроде этого?
function get_file($file, $local_path, $newfilename) { $err_msg = ''; echo "<br>Attempting message download for $file<br>"; $out = fopen($local_path.$newfilename,"wb"); if ($out == FALSE){ print "File not opened<br>"; exit; } $ch = curl_init(); curl_setopt($ch, CURLOPT_FILE, $out); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_URL, $file); curl_exec($ch); echo "<br>Error is : ".curl_error ( $ch); curl_close($ch); //fclose($handle); }//end function
Функциональность: ее функция и принимает три параметра
get_file($file, $local_path, $newfilename)
$file
: имя файла возвращаемого объекта
$local_path
: локальный путь к каталогу для хранения объекта
$newfilename
: новое имя файла в локальной системе
Вы можете использовать:
<?php // create a new cURL resource $ch = curl_init(); // set URL and other appropriate options curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); // grab URL and pass it to the browser $out = curl_exec($ch); // close cURL resource, and free up system resources curl_close($ch); $fp = fopen('data.txt', 'w'); fwrite($fp, $out); fclose($fp); ?>
См. http://jp2.php.net/manual/en/function.curl-exec.php и http://us3.php.net/manual/en/function.fwrite.php.
Я думаю, что curl имеет опцию -o для записи вывода в файл вместо stdout.
После этого вы должны указать имя выходного файла.
пример:
curl -o path_to_the_file url