Ich versuche, eine Datei mit PHP und cURL herunterladen. Ich erhalte die URL, um die Datei über eine Reihe von cURL-Anfragen herunterzuladen.Problem beim Herunterladen der Datei mit PHP
Wenn ich versuche, die Datei herunterzuladen, erhalte ich eine leere Datei. Siehe unten das entsprechende Stück Code:
...
$output = curl_exec($ch);
curl_close($ch);
$regex = '/\b(https?|ftp|file):\/\/resources\.lendingclub\.com\/secure[-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i';
preg_match_all($regex, $output, $parts);
$url3a = $parts[0][0];
OutputMsg($url3a); //print the content of $url3a
DownloadFile($url3a, 'testfile.zip'); //downloads the file using a cURL request
...
Dies erstellt die Datei testfile.zip mit NULL Bytes. Und gibt die folgenden auf den Bildschirm:
https://resources.lendingclub.com/secure/LoanStats3a_securev1.csv.zip?signature=cmu73mJsyNhznZMBH6B%2FsFjoNuE%3D&issued=1459663950631
Wenn ich eine Linie (siehe unten) hinzufügen
...
$output = curl_exec($ch);
curl_close($ch);
$regex = '/\b(https?|ftp|file):\/\/resources\.lendingclub\.com\/secure[-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i';
preg_match_all($regex, $output, $parts);
$url3a = $parts[0][0];
//line added below
$url3a = 'https://resources.lendingclub.com/secure/LoanStats3a_securev1.csv.zip?signature=cmu73mJsyNhznZMBH6B%2FsFjoNuE%3D&issued=1459663950631';
OutputMsg($url3a); //print the content of $url3a
DownloadFile($url3a, 'testfile.zip'); //downloads the file using a cURL request
...
die Datei korrekt heruntergeladen und auf dem Bildschirm gibt das gleiche wie zuvor:
https://resources.lendingclub.com/secure/LoanStats3a_securev1.csv.zip?signature=cmu73mJsyNhznZMBH6B%2FsFjoNuE%3D&issued=1459663950631
Ich bin ratlos, warum das erste Beispiel oben nicht funktioniert und das zweite Beispiel. Das einzige, was ich getan habe, war, die URL einzugeben und sie der Variablen zuzuweisen.
Ich kann mehr Code zur Verfügung stellen, einschließlich der DownloadFile-Funktion.
Ich habe keinen Weg gefunden, damit es funktioniert, ohne dass ich die URL in den Quellcode eingeben muss.
Danke.