Bestimmen der Remote-Dateigröße
Das Ermitteln der Dateigröße einer Remote-Datei ohne Herunterladen kann in bestimmten Szenarien eine nützliche Optimierung sein.
Lösung
Wie in den Antworten erwähnt, Verwendung eines HTTP HEAD request ist ein geeigneter Ansatz für diese Aufgabe. HEAD-Anfragen rufen die mit einer Ressource verknüpften HTTP-Header ab, ohne den eigentlichen Text abzurufen.
Implementierung
Hier ist eine PHP-Funktion, die diese Methode nutzt:
function get_remote_file_size($url) { $curl = curl_init($url); curl_setopt($curl, CURLOPT_NOBODY, true); curl_setopt($curl, CURLOPT_HEADER, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); $data = curl_exec($curl); curl_close($curl); if ($data) { preg_match("/Content-Length: (\d+)/", $data, $matches); $content_length = $matches[1] ?? -1; return $content_length; } return -1; }
Nutzung
Mit dieser Funktion können Sie ermitteln die Größe einer Remote-Datei:
$file_size = get_remote_file_size("http://my_url/my_file.txt");
Hinweis: Diese Methode basiert darauf, dass der Server die HEAD-Anfrage berücksichtigt und den richtigen Content-Length-Header bereitstellt.
Das obige ist der detaillierte Inhalt vonWie kann ich die Größe einer Remote-Datei ermitteln, ohne sie herunterzuladen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!