使用curl和PHP保存文件

10 php xml curl

如何使用curl和PHP保存文件?

Hai*_*vgi 32

你想要这样的东西吗?

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 
Run Code Online (Sandbox Code Playgroud)

功能:它的功能和接受三个参数

get_file($file, $local_path, $newfilename)
Run Code Online (Sandbox Code Playgroud)

$file :是要检索的对象的文件名

$local_path :是存储对象的目录的本地路径

$newfilename :是本地系统上的新文件名


Jon*_*and 9

您可以使用:

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

?>
Run Code Online (Sandbox Code Playgroud)

请参阅:http://jp2.php.net/manual/en/function.curl-exec.phphttp://us3.php.net/manual/en/function.fwrite.php

  • 这将完成小文件的工作,但它会在保存之前将整个文件加载到内存中,因此如果文件大于PHP的内存限制,您可能会遇到致命的"内存不足"错误.Haim Evgi的答案正确地将文件流式传输到磁盘,避免了这个问题. (4认同)