Ich möchte den Befehl HEAD des Hypertext Transfer Protocol an einen Server in PHP senden, um den Header, aber nicht den Inhalt oder eine URL abzurufen. Wie mache ich das auf effiziente Weise?Was ist der einfachste Weg, den HEAD-Befehl von HTTP in PHP zu verwenden?
Der wahrscheinlich häufigste Anwendungsfall ist die Suche nach toten Weblinks. Dazu benötige ich nur den Antwortcode der HTTP-Anfrage und nicht den Seiteninhalt. Das Erhalten von Webseiten in PHP kann einfach mit file_get_contents("http://...")
durchgeführt werden, aber zum Überprüfen von Links ist dies wirklich ineffizient, da es den ganzen Seiteninhalt/Bild/was auch immer herunterlädt.
Ich bevorzuge diese Lösung gegenüber denen mit Curl, weil ich gerne integrierte Funktionen verwenden. Vielleicht kann jemand anderes die Leistung jeder Möglichkeit kommentieren? – fuenfundachtzig
Beachten Sie, dass dies einen Fehler für die Antwortcodes "401" verursacht, während curl Ihnen die tatsächliche Antwort liefert. –
'stream_context_create()' kann auch mit 'file_get_content()' verwendet werden. Vielleicht ist 'get_headers()' viel besser mit 'stream_context_set_default()' zu der Methode der Anfrage an
HEAD
kombiniert. Siehe http://php.net/manual/es/function.get-headers.php – cybmeta