为什么这段代码没有fwrite语句?

时间:2013-05-28 13:36:43

标签: php curl fopen fwrite

我试图理解PHP中的curl / fopen。以下函数工作正常,但我希望在某些时候看到fwrite。

function cURLdownload($url, $file) 
{ 
  if( !cURLcheckBasicFunctions() ) return "UNAVAILABLE: cURL Basic Functions"; 
  $ch = curl_init(); 
  if($ch) 
  { 
    $fp = fopen($file, "w"); 
    if($fp) 
    { 
      if( !curl_setopt($ch, CURLOPT_URL, $url) ) 
      { 
        fclose($fp); // to match fopen() 
        curl_close($ch); // to match curl_init() 
        return "FAIL: curl_setopt(CURLOPT_URL)"; 
      } 
      if( !curl_setopt($ch, CURLOPT_FILE, $fp) ) return "FAIL: curl_setopt(CURLOPT_FILE)"; 
      if( !curl_setopt($ch, CURLOPT_HEADER, 0) ) return "FAIL: curl_setopt(CURLOPT_HEADER)"; 
      if( !curl_exec($ch) ) return "FAIL: curl_exec()"; 
      curl_close($ch); 
      fclose($fp); 
      return "SUCCESS: $file [$url]"; 
    } 
    else return "FAIL: fopen()"; 
  } 
  else return "FAIL: curl_init()"; 
} 

2 个答案:

答案 0 :(得分:0)

if( !curl_setopt($ch, CURLOPT_FILE, $fp) ) return "FAIL: curl_setopt(CURLOPT_FILE)"; 告诉库将输出写入文件。 因此,当您使用curl_exec()时,文件会立即被写入。

答案 1 :(得分:0)

你把它弄下来了!您已调用fwrite()

时,无需直接致电curl_setopt($ch, CURLOPT_FILE, $fp)

有关详细信息,请参阅此post