2017-06-29 3 views
0

Ich mache einige API-Arbeit mit cURL. Ich bin Protokollierung der Sitzungs-Antwort wie folgt aus:PHP - Holen Sie sich einen bestimmten Wert von curl_exec

$headers = array(
     'Authorization: Bearer '. $accessToken, 
     'Content-Type: image/png', 
     'Content-Disposition: attachment; filename="'. $filename .'"', 
     'Content-Length: '. $fileSize 
    ); 

$curlSession = curl_init($apiURL); 
curl_setopt($attachmentSession, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($attachmentSession, CURLOPT_HEADER, true); 
curl_setopt($attachmentSession, CURLOPT_INFILE, $fileStream); 
curl_setopt($attachmentSession, CURLOPT_INFILESIZE, $fileSize); 
curl_setopt($attachmentSession, CURLOPT_UPLOAD, 1); 
//curl_setopt($attachmentSession, CURLOPT_POSTFIELDS, ''); 
curl_setopt($attachmentSession, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($attachmentSession, CURLOPT_CUSTOMREQUEST, "POST"); 
$curlResponse = curl_exec($curlSession); 
print_r($curlResponse); 

Das gibt mir die folgende Ausgabe:

HTTP/1.1 100 Continue HTTP/1.1 200 OK Date: Thu, 29 Jun 2017 18:31:37 GMT Content-Type: application/json;charset=UTF-8 Content-Length: 316 Connection: close {"message":"SUCCESS","resultCode":0,"result":{"id":348293483294,"name":"smartsheet.png","attachmentType":"FILE","mimeType":"image/png","sizeInKb":85,"parentType":"ROW","parentId":32423423423,"createdBy":{"name":"Test","email":"[email protected]"},"createdAt":"2017-06-29T18:31:37Z"},"version":404} 

Wie kann ich den Wert zugreifen, die mit parentId aus dieser Antwort? Ich habe versucht, die folgenden:

$curlResponse->parentId 

und

$curlResponse[parentId] 

aber die hat nicht funktioniert.

+0

zu setzen Wo ist der Rest Ihrer Curl-Setup? Sie müssen die Option festlegen, um auch Header zu erhalten. Versuchen Sie ohne diese Option und 'json_decode' das Ergebnis – dan08

+0

@ dan08 aktualisiert mit dem Rest meiner Curl-Setup – user13286

+0

@ dan08 danke, das war es! Sobald ich die 'CURLOPT_HEADER'-Zeile entfernt habe, konnte ich' json_decode' verwenden. Bitte als Antwort hinzufügen, nochmals vielen Dank! – user13286

Antwort

2

Der von curl zurückgegebene Antworttext enthält die "Raw http response", einschließlich Header und Text. Sie können die Header verwerfen von

curl_setopt($attachmentSession, CURLOPT_HEADER, false); 

Auf diese Weise können nur die respone Körper bekommen und Sie können es json_decode. Beachten Sie jedoch, dass das Verwerfen von Headern Sie später verletzen kann, z. wenn Sie bestimmte Antworten überprüfen müssen. Sie können die Header mit CURLOPT_HEADERFUNCTION erhalten, die Ihnen ermöglicht, eine Callback-Funktion zum Parsen der Antwortheader

Verwandte Themen