2014-03-05 14:44

使用 Stream 讀取 cUrl 下載結果

使用 stream 的好處就是用多少拿多少,不會因為資料大小而占用大量的記憶體。

  1. $url = 'http://www.google.com.tw'; 
  2.  
  3. /* 建立接收的 Temp File Stream */ 
  4. $tmpfile = tmpfile(); 
  5.  
  6.  
  7. $curl = curl_init(); 
  8.  
  9. /* 指定下載的的 URL */ 
  10. curl_setopt($curl, CURLOPT_URL, $url);  
  11.  
  12. /* 指定存放的 File Stream */ 
  13. curl_setopt($curl, CURLOPT_FILE, $tmpfile); 
  14.  
  15. /* 執行並取得狀態 */ 
  16. $status = curl_exec($curl); 
  17. curl_close($curl); 
  18.  
  19. if(!$status){  
  20.    fclose($tmpfile);  
  21.    exit('error');  
  22. } 
  23.  
  24.  
  25. /* Temp File Stream 指標歸零 */ 
  26. fseek($tmpfile, 0); 
  27.  
  28. /*一次讀取一行*/ 
  29. while (($line = fgets($tmpfile)) !== false) { 
  30.    var_dump($line); 
  31. } 
  32.  
  33. /* 關閉 Stream */ 
  34. fclose($tmpfile); 

0 回應: