2011-12-16 87 views
1

我有一個腳本從數據庫中提取URL並將它們下載到本地文件(pdf或jpg)。使用PHP/cURL下載遠程文件:更強大一點

代碼是:

$cp = curl_init($remote_url); 
    $fp = fopen($dest_temp, "w"); 
    @curl_setopt($cp, CURLOPT_FILE, $fp); 
    @curl_setopt($ch, CURLOPT_HEADER, TRUE); 
    curl_exec($cp); 
    curl_close($cp); 
    fclose($fp);  

如果遠程文件是存在的,它工作正常。如果遠程文件不在那裏,它只是炸彈,瀏覽器永遠掛起。

什麼是最好的方法來處理這個,我應該先以某種方式ping文件?或者我可以設置上面的選項來處理這個問題。我嘗試設置超時,但它沒有效果。

這是用我的第一次經歷捲曲

+0

你試過了什麼超時值?你有沒有試過TIMEOUT和CONNECTTIMEOUT?此外,你檢查curl_error()或curl_errno()的線索嗎?如果RETURNTRANSFER(如果你自己編寫內容,會產生什麼影響?)或FOLLOWLOCATION(遠程請求是否返回位置標題?)。 – landons 2011-12-16 02:19:10

回答

0

我曾經使用wget就像你使用捲曲並與缺乏能力很沮喪知道是怎麼回事,因爲它本質上呼喚外部程序。

我使用Perl WWW:機械化和下面的鏈接是一個PHP版本,可能會更強大一點,你能夠處理這種情況。

http://www.compasswebpublisher.com/php/www-mechanize-for-php

希望這有助於。