Портфоліо
Розробляємо інтернет-магазини, CRM системи, SaaS, APP платформи — впроваджуємо AI у процеси та рішення.
Client Logo
Icon 5.0
+150 клієнтів
Новий проєкт
Project Image
Технології
Розробляємо інтернет-магазини, CRM системи, SaaS, APP платформи — впроваджуємо AI у процеси та рішення.
Client Logo
Icon 5.0
+150 клієнтів
Новий проєкт
Project Image
15.10.2025

PHP – визначення розміру файлу на віддаленому сервері

Blog Image

Постала гостра необхідність отримати розмір тисячі величезних файлів, які лежали на віддаленому сервері.

Потрібно було отримати загальну кількість МБ всіх файлів, для того, що б зрозуміти, чи вистачить місця на сервері якщо скачати всі ці файли. На php це реалізувати досить просто і швидко. Отримати розмір віддаленого файлу можна з HTTP-заголовків

<?
 function getRemoteFileSize($url){
   $parse = parse_url($url);
   $host = $parse['host'];
   $fp = @fsockopen ($host, 80, $errno, $errstr, 20);
   if(!$fp){
     $ret = 0;
   }else{
     $host = $parse['host'];
     fputs($fp, "HEAD ".$url." HTTP/1.1\r\n");
     fputs($fp, "HOST: ".$host."\r\n");
     fputs($fp, "Connection: close\r\n\r\n");
     $headers = "";
     while (!feof($fp)){
       $headers .= fgets ($fp, 128);
     }
     fclose ($fp);
     $headers = strtolower($headers);
     $array = preg_split("|[\s,]+|",$headers);
     $key = array_search('content-length:',$array);
     $ret = $array[$key+1];
   }
   if($array[1]==200) return $ret;
   else return -1*$array[1];
 }

$url = ‘http://site.com/blog/wp-content/uploads/2012/12/sreda.zip’;
$size = getRemoteFileSize($url);
if($size==0) echo ” Не можу з’єднатися “;
elseif($size<0) echo ” Помилка. Код відповіді HTTP: “.(-1*$size);
else echo ” Розмір віддаленого файлу (bytes): “.$size;
?>

Давайте
рухати
світ
разом
стати клієнтом
Redstone Icon
Зателефонувати
Менеджер REDSTONE
Play Muted Unmuted Link Drag