INT 21h

Hi, I am Vladimir Smagin, sysadmin. Telegram Email

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

№ 4788 В разделе "Программирование" от 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 *

*

Комментарии

  • 21h: нене ) без меня )
  • Серегй: Не совсем грабить)) если грабить можно и без рации, есть...
  • 21h: магазин грабить собрались? ) не, тут я не помощник ;)
  • Серегй: А что бы мне поймать чужую волну, что мне для этого нужно...
  • 21h: слушать никто не запрещает. нет закона, который запрещает...
  • Серегй: Я хотел узнать могу ли я просто прийти с данной рацией baofeng...
  • 21h: У меня есть только эти 2. По другим ничего не знаю. В интернете...

© Vladimir Smagin, 2005-2017. Копирование материалов без разрешения запрещено.
Яндекс.Метрика