2017-04-19 6 views
0

Ich habe eine cURL-Befehl, der sehr gut funktioniert und CLI (via Git Bash). Siehe unten:Convert Syntax von CURL zu PHP cURL

Dieser Befehl exportiert sehr gut alle Probleme in einer Excel-Datei (xls) von meinem JIRA. Jetzt möchte ich diesen Befehl in php curl umwandeln. Ich habe diesen Code unten versucht:

$url = 'https://build.bnum.laposte.fr/jira/sr/jira.issueviews:searchrequest-excel-current-fields/temp/SearchRequest.xls?jqlQuery=project+%3D+LPCCU+AND+type+%3D+Incident'; 

    $username ='adminid'; 
    $password ='adminpw'; 

    $file = fopen('tvdata.xls', 'w'); 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept: application/vnd.ms-excel")); 
    curl_setopt($ch, CURLOPT_NOPROGRESS, FALSE); 
    curl_setopt($ch, CURLOPT_FAILONERROR, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 15000); 
    curl_setopt($ch, CURLOPT_FILE, $file); 

    curl_exec($ch); 
    curl_close($ch); 

    fclose($file); 

aber wenn ich diesen PHP-Code ausführen, er schafft ein leer Excel-Datei nur, aber ohne einen Fehler zu erhalten. Wenn jemand dieses Problem herausfinden kann?

Vielen Dank im Voraus

Achillix

+0

Setzen Sie CURLOPT_RETURNTRANSFER auf 1 – diavolic

+0

@diavolic THX für Ihre Antwort, aber keine Änderungen – achillix

Antwort

1

Haben Sie versucht, on-line-Wandler wie this ein mit?

Von ...

curl -D- -k -o tvdata.xls -u adminid:adminpw -X GET -H "Content-Type: application/vnd.ms-excel" https://localhost/jira/sr/jira.issueviews:searchrequest-excel-current-fields/temp/SearchRequest.xls?jqlQuery=project+%3D+LPCCU+AND+type+%3D+Incident 

... Sie erhalten:

// Generated by curl-to-PHP: http://incarnate.github.io/curl-to-php/ 
$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, "https://localhost/jira/sr/jira.issueviews:searchrequest-excel-current-fields/temp/SearchRequest.xls?jqlQuery=project+%3D+LPCCU+AND+type+%3D+Incident"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); 

curl_setopt($ch, CURLOPT_USERPWD, "adminid" . ":" . "adminpw"); 

$headers = array(); 
$headers[] = "Content-Type: application/vnd.ms-excel"; 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 

$result = curl_exec($ch); 
if (curl_errno($ch)) { 
    echo 'Error:' . curl_error($ch); 
} 
curl_close ($ch); 

... verglichen mit dem Beispielcode, CURLOPT_URL und CURLOPT_HTTPHEADER sind unterschiedlich, und einige andere Optionen nicht gesetzt werden .

+0

thx für Ihre Antwort und Ihre Hilfe. Der Konverter ist großartig! Ich habe versucht, Ihren Code und jetzt bekomme ich eine Fehlermeldung: Fehler ssl Zertifikat Problem: selbstsigniertes Zertifikat in der Zertifikatskette in cURL ist es die Option -k, um das SSL-Problem zu evt. irgendeine Idee? THX im Voraus – achillix

+0

Ich habe diese 2 Optionen hinzugefügt und es funktioniert: curl_setopt ($ ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, false); Aber du hast mein Problem in 99% gelöst. Also vielen Dank. Prost – achillix