2017-04-19 2 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에서 엑셀 파일 (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 코드를 실행할 때, 그는 는 파일을 엑셀,하지만 오류가 발생하는하지 않고 만들 수 있습니다. 누군가이 문제를 알아낼 수 있다면? 사전에

덕분에

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 

... 당신이 얻을 : 샘플 코드, CURLOPT_URL 및 CURLOPT_HTTPHEADER에 비해

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

이 ... 다른, 그리고 몇 가지 다른 옵션이 설정되어 있지 않습니다 .

+0

번 변경하지 마십시오. 변환기가 멋지다! 나는 당신의 코드를 시도했지만 이제 오류 메시지가 나타납니다. 오류 SSL 인증서 문제 : 인증서 체인의 자체 서명 된 인증서 (cURL) - SSL 문제를 해결하는 -k 옵션입니다. 어떤 생각? THX 사전에 – achillix

+0

나는이 2 개의 옵션을 추가했고 작동한다 : curl_setopt ($ ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, false); 하지만 당신은 내 문제를 99 %로 해결했습니다. 정말 고마워요. 건배 – achillix

관련 문제