2014-03-05

使用 Stream 讀取 cUrl 下載結果

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

$url = 'http://www.google.com.tw';

/* 建立接收的 Temp File Stream */
$tmpfile = tmpfile();


$curl = curl_init();

/* 指定下載的的 URL */
curl_setopt($curl, CURLOPT_URL, $url); 

/* 指定存放的 File Stream */
curl_setopt($curl, CURLOPT_FILE, $tmpfile);

/* 執行並取得狀態 */
$status = curl_exec($curl);
curl_close($curl);

if(!$status){ 
    fclose($tmpfile); 
    exit('error'); 
}


/* Temp File Stream 指標歸零 */
fseek($tmpfile, 0);

/*一次讀取一行*/
while (($line = fgets($tmpfile)) !== false) {
    var_dump($line);
}

/* 關閉 Stream */
fclose($tmpfile);

0 回應: