Maison > développement back-end > tutoriel php > Comment puis-je obtenir la taille d'un fichier distant sans le télécharger ?

Comment puis-je obtenir la taille d'un fichier distant sans le télécharger ?

Mary-Kate Olsen
Libérer: 2024-12-18 09:33:10
original
170 Les gens l'ont consulté

How Can I Get the Size of a Remote File Without Downloading It?

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;
}
Copier après la connexion

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");
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal