Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana Saya Boleh Mendapatkan Saiz Fail Jauh Tanpa Memuat turunnya?

Bagaimana Saya Boleh Mendapatkan Saiz Fail Jauh Tanpa Memuat turunnya?

Mary-Kate Olsen
Lepaskan: 2024-12-18 09:33:10
asal
168 orang telah melayarinya

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

Menentukan Saiz Fail Jauh

Mendapatkan saiz fail fail jauh tanpa memuat turunnya boleh menjadi pengoptimuman yang berguna dalam senario tertentu.

Penyelesaian

Seperti yang dinyatakan dalam jawapan, menggunakan permintaan HTTP HEAD ialah pendekatan yang sesuai untuk tugasan ini. Permintaan HEAD mendapatkan semula pengepala HTTP yang dikaitkan dengan sumber, tanpa mengambil badan sebenar.

Pelaksanaan

Berikut ialah fungsi PHP yang memanfaatkan kaedah ini:

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;
}
Salin selepas log masuk

Penggunaan

Anda boleh menggunakan fungsi ini untuk menentukan saiz fail jauh:

$file_size = get_remote_file_size("http://my_url/my_file.txt");
Salin selepas log masuk

Nota: Kaedah ini bergantung pada pelayan yang memenuhi permintaan HEAD dan menyediakan pengepala Panjang Kandungan yang betul.

Atas ialah kandungan terperinci Bagaimana Saya Boleh Mendapatkan Saiz Fail Jauh Tanpa Memuat turunnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan