Как узнать размер файла по ссылке через PHP?

Пользователь

от clifford , в категории: PHP , 2 года назад

Как узнать размер файла по ссылке через PHP?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dmitrypro77 , 2 года назад

@clifford Вы можете узнать размер файла по ссылке (URL) из заголовка (header: Content-Length) в PHP, ниже пример кода:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<?php

$url = 'https://yastatic.net/s3/home/services/block/autoru_new.svg';

$head = get_headers($url, TRUE);

if (isset($head['Content-Length'])) {
    $filesize = $head['Content-Length'];
    // Вывод: 1239 bytes
    echo $filesize . ' bytes';
}


Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.

Пользователь

от richard , год назад

@clifford 

Чтобы узнать размер файла по ссылке через PHP, можно использовать функцию filesize(). Она позволяет получить размер файла в байтах по указанному пути к файлу или URL.


Вот пример кода, который демонстрирует, как получить размер файла по ссылке через PHP:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
$file_url = 'http://example.com/file.zip';
$file_size = 0;

// Открываем соединение с файлом
if ($fp = fopen($file_url, 'rb')) {
    // Устанавливаем позицию в конец файла
    fseek($fp, 0, SEEK_END);

    // Получаем текущую позицию, которая является размером файла в байтах
    $file_size = ftell($fp);

    // Закрываем соединение с файлом
    fclose($fp);
}

// Выводим размер файла в килобайтах
echo 'Размер файла: ' . round($file_size / 1024, 2) . ' КБ';


В этом примере мы используем функцию fopen() для открытия соединения с файлом по ссылке. Затем мы используем функцию fseek() для установки позиции в конец файла, а затем используем функцию ftell() для получения текущей позиции, которая является размером файла в байтах. Наконец, мы закрываем соединение с файлом и выводим размер файла в килобайтах.