Was ist der einfachste Weg, den HEAD-Befehl von HTTP in PHP zu verwenden?

8

Ich möchte den HEAD-Befehl 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 effizient?

Der wahrscheinlich häufigste Anwendungsfall ist die Überprüfung auf tote Weblinks. Dazu benötige ich nur den Antwortcode der HTTP-Anfrage und nicht den Seiteninhalt. Webseiten in PHP zu bekommen kann man leicht mit file_get_contents("http://...") machen, aber zum Überprüfen von Links ist das wirklich ineffizient, da es den ganzen Seiteninhalt / Bild / was auch immer herunterlädt.

    
fuenfundachtzig 09.10.2009, 18:42
quelle

4 Antworten

15

Als Alternative zu curl können Sie die http-Kontextoptionen verwenden, um die Anfrage-Methode auf HEAD zu setzen. Öffnen Sie dann mit diesen Optionen einen Stream (http-Wrapper) und rufen Sie die Metadaten ab.

%Vor%

siehe auch:
Ссылка
Ссылка

    
VolkerK 09.10.2009, 20:48
quelle
17

Sie können dies mit cURL ganz einfach tun:

%Vor%     
PatrikAkerstrand 09.10.2009 18:46
quelle
3

Noch einfacher als curl - verwenden Sie einfach die Funktion PHP get_headers() , die ein Array aller Header-Informationen für jede von Ihnen angegebene URL zurückgibt. Und eine weitere einfache Möglichkeit, um das Vorhandensein einer entfernten Datei zu überprüfen, ist fopen() zu verwenden und zu versuchen, die URL im Lesemodus zu öffnen (Sie müssen hierfür allow_url_fopen aktivieren).

Schau dir einfach das PHP-Handbuch für diese Funktionen an, es ist alles drin.

    
Brian 10.10.2009 07:04
quelle
2

Es scheint, als ob Birne es hat:

Ссылка

    
JCasso 09.10.2009 18:47
quelle

Tags und Links