2017-04-19 19 views
0

CLI(git Bash経由)でうまく動作するcURLコマンドがあります。以下を参照してください:構文をcURLからphpに変換するcURL

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 

このコマンドは、JIRAのExcelファイル(xls)のすべての問題を非常によくエクスポートします。 今私はこのコマンドをPHPのカールに変換したいです。私はこのコードの下にしようとしている:

$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); 

が、私はこのPHPコードを実行すると、彼はだけExcelファイルが、エラーを取得することなく、作成します。もし誰かがこの問題を理解できたらどうですか?事前に

おかげ

Achillix

+0

CURLOPT_RETURNTRANSFERを1に設定します。 – diavolic

+0

@diavolic THX(回答は – achillix

答えて

1

あなたがthisのようなオンライン・コンバータを使用してみましたか?あなたが得る...

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 

から

...:

// 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); 

...あなたのサンプルコード、CURLOPT_URLとCURLOPT_HTTPHEADERと比較は異なっており、他のいくつかのオプションが設定されていません。

+0

です)。コンバータは素晴らしいです!私はあなたのコードを試して、今私はエラーメッセージが表示されます: エラーssl証明書の問題:証明書チェーンの自己署名入りの証明書 cURLでそれはSSLの問題をevateするオプションです。何か案が? THX事前に – achillix

+0

私はこの2つのオプションを追加しました:curl_setopt($ ch、CURLOPT_SSL_VERIFYHOST、false); curl_setopt($ ch、CURLOPT_SSL_VERIFYPEER、false);しかし、あなたは私の問題を99%で解決しました。とてもありがとうございました。乾杯 – achillix