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.
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.