2010-12-22 14 views
0

Ich möchte ein Bild von einem Remote-Server nur herunterladen, wenn es nicht älter als zwei Tage ist.Curl herunterladen Bild nur wenn nicht älter als 2 Tage

Ist der Code, den ich ausführe, richtig? Ich möchte die last_modified Daten vor dem Download wissen.

$ch = curl_init($file_source); // the file we are downloading 
    curl_setopt($ch, CURLOPT_TIMEOUT, 20); 
    curl_setopt($ch, CURLOPT_FILE, $wh); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($ch, CURLOPT_FILETIME, true); 
    curl_exec($ch); 
    $headers = curl_getinfo($ch); 
    $last_modified = $headers['filetime']; 

    if ($last_modified != -1) { // unknown 
     echo date("Y-m-d", $last_modified); //etc 
    } 


    curl_close($ch); 
    fclose($wh); 

Antwort

1
$file_source = 'http://www.google.com/images/nav_logo29.png'; 
$ch = curl_init($file_source); 
curl_setopt($ch, CURLOPT_TIMEOUT, 20); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 

curl_setopt($ch, CURLOPT_FILETIME, true); 
curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false); <-- don't download first 
curl_exec($ch); 
$headers = curl_getinfo($ch); 
$last_modified = $headers['filetime']; 

if ($last_modified != -1) 
{ 
    if ($last_modified>time()-86400*2) <-- not older than 2 days 
    { 
    $ch2 = curl_init($file_source); 
    $wh = fopen('YOUR_PATH, 'w'); 
    curl_setopt($ch2, CURLOPT_FILE, $wh); 
    curl_exec($ch2); 
    curl_close($ch2); 
    fclose($wh); 
    } 
} 
curl_close($ch); 
Verwandte Themen