2017-04-10 1 views
0

Ich bin eine Locke Anruf (PHP), zu einem REST-API, und Ich wünsche sowohl den Kopf- und Körper, die folgenden curl Optionen:Trennung Kopf von Körper nach curl Aufruf in PHP

CURLOPT_HEADER => TRUE, 
CURLOPT_NOBODY => FALSE 

Der Anruf ist ein Erfolg, und ich bin immer die folgende Antwort:

HTTP/1.1 200 OK 
Server: nginx/1.4.6 (Ubuntu) 
Date: Mon, 10 Apr 2017 18:42:05 GMT 
Content-Type: application/json; charset=utf-8 
Content-Length: 65 
Connection: keep-alive 
X-Powered-By: Express 
Access-Control-Allow-Origin: * 
Access-Control-Allow-Methods: GET 
Access-Control-Allow-Headers: Content-Type 
X-Rate-Limit-Limit: 1000 
X-Rate-Limit-Remaining: 997 
X-Rate-Reset: 81505 
ETag: W/"41-ltrGtAoAWpkb+p1Y+yju9w" 

{"name":"jim","gender":"male","probability":0.99,"count":1805} 

ich interessiere mich für:

X-Rate-Limit-Remaining: 997 

und der JSON:

{"name":"jim","gender":"male","probability":0.99,"count":1805} 

Dies muss auf Windows-Systemen und Linux-Systemen funktionieren. Ich habe versucht, die Ausgabe auf $ string speichern und dann mit:

explode ("\r\n", $string); 

und

explode ("\n", $string); 

Aber es funktioniert nicht. Ich könnte die Header und Op-Ergebnis getrennt erhalten, aber das sind 2 API-Aufrufe, und ich bin Rate begrenzt.

Irgendwelche Ideen?

Antwort

1

Try this:

$response = curl_exec($ch); 

$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); 
curl_close($ch); 

$header = substr($response, 0, $header_size); 
$body = substr($response, $header_size); 

$headers = explode("\n", $header); 
+0

Ist das nicht substr ($ response, 0, $ header_size) die gleiche wie substr ($ response, $ header_size) – EastsideDeveloper

+0

Nein, das ist nicht das gleiche. substr ($ response, 0, $ header_size) gibt von 0 bis zur Position zurück, die die Anzahl der Zeichen im Header ist. substr ($ response, $ header_size) gibt vom Zeichen nach dem Header an das Ende eines Strings zurück – quentino

+0

Ja, das funktioniert. Obwohl ich es anders gemacht habe. Ich habe bereits die header_size im Infoteil meiner Datenstruktur – EastsideDeveloper