INT 21h

Hi, I am Vladimir Smagin, SysAdmin and Kaptain. Telegram Email / GIT / RSS / GPG

Как получить размер файла с помощью php curl

№ 4788 В разделе Programming от January 18th, 2013,
В подшивках:

Не так давно я возродил старый проект Distr СMS и медленно его улучшаю. Он очень полезен всем держателям файловых серверов с дистрибутивами. Чтобы узнать какого размера дистрибутив пользователю нужно начать его качать. Так вот чтобы пользователь не качал почем зря и держатель сервера особо не заморачивался о размерах файлов в БД я использовал функцию определения размера файла по возвращаемому сервером заголовку. Кстати, скачать Distr CMS можно тут.

distr_cms

А теперь к делу. Убедитесь, что у вас установлен модуль PHP curl. Если нет, то легко устанавливается командой sudo apt-get install php5-curl. А потом сделайте рестарт вебсервера, если PHP подключен модулем к нему или fcgi демона (например, php-fpm).

А вот и сам кусочек кода:

   function get_size($url){
     $ch = curl_init($url);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
     curl_setopt($ch, CURLOPT_HEADER, TRUE);
     curl_setopt($ch, CURLOPT_NOBODY, TRUE);
     $data = curl_exec($ch);
     $fsize = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
     curl_close($ch);
     return $fsize;
    }

Ничего сложного и все объяснимо документацией curl. Функция работает достаточно быстро, чтобы ее использовать в ваших продакшн скриптах. У меня она запускается при добавлении урла в базу данных, дописывая размер файла в ту же таблицу урлов.

Всего 1 комментарий »

One response to “Как получить размер файла с помощью php curl”

  1. Сис-админ says:

    Спасибо за CMS’ку. Молодец, что сделал такой проект. Я ещё ни где не видел в сети такого проекта.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Облачная платформа
Яндекс.Метрика

Fortune cookie: Today's spam: Live large with a great big manhood!