Curl-Anfrage mit Kopfzeilen - Trenne Body a von einer Kopfzeile [duplizieren]

8

Ich habe einen Code

%Vor%

Nun möchte ich den Körper von $ ret ohne Header extrahieren. Irgendeine Idee, wie man es macht?

    
Michal 30.04.2012, 13:47
quelle

3 Antworten

18

Wie wäre es damit:

%Vor%

... was Ihnen den Inhalt Ihrer Anfrage in der Variablen $ content geben soll?

    
raina77ow 30.04.2012, 13:52
quelle
33

raina77ows Antwort ist gut. Aus den Kommentaren sieht es so aus, als gäbe es einige Bedingungen, die dazu führen würden, dass die "Explosion" nicht funktioniert. Ich fand einen Weg, der besser für mich funktioniert und dachte, ich würde teilen.

Durch Aufruf von curl_getinfo ($ ch, CURLINFO_HEADER_SIZE) können Sie die Länge des Antwortheaders ermitteln. Also habe ich folgendes gemacht:

%Vor%

Das funktioniert großartig für mich. Ich hoffe, es hilft jemand anderem.

    
natiupiru 24.03.2014 21:45
quelle
1

Zeichne auf @Geoffrey ausgezeichnete Antwort in diesem Thema ...

Einige der anderen Lösungen, die diesen Thread anbieten, sind nicht , die das richtig machen.

  • Die Aufteilung auf \r\n\r\n ist nicht zuverlässig, wenn CURLOPT_FOLLOWLOCATION aktiviert ist oder wenn der Server mit einem 100-Code antwortet.
  • Das Erkennen der Größe der Header über CURLINFO_HEADER_SIZE ist auch nicht immer zuverlässig, besonders wenn Proxies verwendet werden oder in einigen Umleitungsszenarien.

Die zuverlässigste Methode zum Abrufen von Headern ist CURLOPT_HEADERFUNCTION . Dann können Sie curl_setopt($ch, CURLOPT_HEADER, 1); entfernen und Ihr Körper wird ohne Header sauber sein.

Hier ist eine sehr saubere Methode, um dies mit PHP-Closures durchzuführen. Es konvertiert auch alle Header in Kleinbuchstaben für eine konsistente Behandlung zwischen Servern und HTTP-Versionen.

%Vor%     
Simon East 09.06.2017 07:11
quelle

Tags und Links