Hallo zusammen, ich mache eine Datenbankabfrage und bekomme Bild URL's und die Dateinamen zurückgeliefert. Anschließend möchte ich per curl_multi_exec die Bilder parallel herunterladen. Das herunterladen funktioniert auch schon. Nur bei der Übergabe der Dateinamen habe ich Probleme und bekomme es nicht hin. Vielleicht kann mir ja jemand behilflich sein.
Bei der Zeile "$path = '/var/www/web28752739/html/test/' . 'image_'. $id.'.jpg';" möchte ich statt die ID den Dateinamen aus der Abfrage. Wie muss ich die Dateinamen dem Array hinzufügen, damit ich diese dann in der Funktion verwenden kann? Ich hoffe das war verständlich erklärt.
Hoffe mir kann jemand weiterhelfen MfG
PHP-Code:
//Datenbankabfrage und Zuweißung
$url1 = $sp['url1'];
$dateiname1 = $sp['dateiname1'];
// Array Zuweißung
$data = array();
array_push($data, $url1);
// Download der Bilder
$r = multiRequest($data);
function multiRequest($data) {
// array of curl handles
$curly = array();
// data to be returned
$result = array();
// multi handle
$mh = curl_multi_init();
// loop through $data and create curl handles
// then add them to the multi-handle
foreach ($data as $id => $d) {
$path = '/var/www/web28752739/html/test/' . 'image_'. $id.'.jpg';
if(file_exists($path)) { unlink($path); }
$fp = fopen($path, 'x');
$url = $d;
$curly[$id] = curl_init($url);
curl_setopt($curly[$id], CURLOPT_HEADER, 0);
curl_setopt($curly[$id], CURLOPT_FILE, $fp);
//fclose($fp);
curl_multi_add_handle($mh, $curly[$id]);
}
// execute the handles
$running = null;
do {
curl_multi_exec($mh, $running);
} while($running > 0);
// get content and remove handles
foreach($curly as $id => $c) {
curl_multi_remove_handle($mh, $c);
}
fclose($fp);
// all done
curl_multi_close($mh);
}
Hoffe mir kann jemand weiterhelfen MfG