Détermination de la taille d'un fichier distant
Obtenir la taille d'un fichier distant sans le télécharger peut être une optimisation utile dans certains scénarios.
Solution
Comme mentionné dans les réponses, en utilisant un HTTP La requête HEAD est une approche appropriée pour cette tâche. Les requêtes HEAD récupèrent les en-têtes HTTP associés à une ressource, sans récupérer le corps réel.
Implémentation
Voici une fonction PHP qui exploite cette méthode :
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; }
Utilisation
Vous pouvez utiliser cette fonction pour déterminer le taille d'un fichier distant :
$file_size = get_remote_file_size("http://my_url/my_file.txt");
Remarque : Cette méthode repose sur le fait que le serveur honore la requête HEAD et fournit l'en-tête Content-Length correct.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!