INT 21h

Домашняя страница самого страшного прерывания

Как получить размер файла с помощью 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 комментарий »

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

Comment by Сис-админ | February 22, 2013 @ 11:03:41

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

Форма отправки комментария

*

Разрешенные HTML-теги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

RSS RSS Feed только для этого поста |


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