Ist es mit PHP möglich, HTTP-Header mit zu senden file_get_contents()
?
Ich weiß, dass Sie den Benutzeragenten aus Ihrer php.ini
Datei senden können . Sie können jedoch auch andere Informationen wie senden HTTP_ACCEPT
, HTTP_ACCEPT_LANGUAGE
und HTTP_CONNECTION
mit file_get_contents()
?
Oder gibt es eine andere Funktion, die dies erreicht?
php
http-headers
Marcus
quelle
quelle
file_get_contents()
? gibt es eine an?ini_set('user_agent', 'SomeBrowser v42.0.4711');
gehen Sie zu user-agent.me und kopieren Sie Ihre von dort .. oder bearbeiten Sie php.ini, um es global zu ändernHier ist, was für mich funktioniert hat (Dominic war nur eine Zeile kurz).
quelle
header
dasuser_agent
Array-Element überschreibt , wenn beide angegeben sind.Mit dieser Variablen können Sie Antwortheader nach der
file_get_contents()
Funktion abrufen .Code:
Ausgabe:
quelle
Ja.
Wenn man
file_get_contents
eine URL aufruft , sollte man diestream_create_context
Funktion verwenden, die auf php.net ziemlich gut dokumentiert ist.Dies wird mehr oder weniger genau auf der folgenden Seite von php.net im Abschnitt mit den Benutzerkommentaren behandelt: http://php.net/manual/en/function.stream-context-create.php
quelle
Die Verwendung der PHP-CURL-Bibliotheken ist wahrscheinlich der richtige Weg, da diese Bibliothek mehr Funktionen als die einfachen bietet
file_get_contents(...)
.Ein Beispiel:
quelle
file_get_contents
und ich habe noch keinen Anwendungsfall gefunden, den Sie nur mit cURL erreichen können.Wenn Sie kein HTTPS benötigen und Curl auf Ihrem System nicht verfügbar ist, können Sie es verwenden
fsockopen
Diese Funktion öffnet eine Verbindung, über die Sie wie mit einem normalen Dateihandle lesen und schreiben können.
quelle
file_get_contents
so dass dies eine nicht zum Thema gehörende Antwort ist.Leider sieht es nicht so aus, als ob es
file_get_contents()
wirklich diesen Grad an Kontrolle bietet. Die cURL-Erweiterung ist normalerweise die erste, die angezeigt wird. Ich würde jedoch die PECL_HTTP-Erweiterung ( http://pecl.php.net/package/pecl_http ) für sehr einfache und unkomplizierte HTTP-Anforderungen empfehlen . (Es ist viel einfacher zu arbeiten als mit cURL)quelle