Изображения и скрипты размещаются на одной учетной записи (один сайт), но мы знаем только URL-адрес изображения.
$image = "http://example.com/images/full-1091.jpg"
Как мы можем получить размер этого файла?
Псевдо-код:
{ do something with $image and get $image_size } echo $image_size;
Я бы предпочел бы, чтобы $image_size
был отформатирован в $image_size
для человека, например «156,8 Кбайт» или «20,1 Мбайт».
Используйте функцию filesize
следующим образом:
echo filesize($filename) . ' bytes';
Вы также можете отформатировать блок размера с помощью этой функции:
function format_size($size) { $sizes = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB"); if ($size == 0) { return('n/a'); } else { return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizes[$i]); } }
Изображения и сценарии размещены на одной учетной записи (один сайт).
Затем не используйте URL-адрес: используйте прямой путь к файлу и filesize()
.
Пожалуйста, обратите внимание:
Результат функции filesize () кэшируется! Используйте clearstatcache (), чтобы очистить кеш.
источник: http://www.w3schools.com/php/func_filesystem_filesize.asp
echo filesize($_SERVER['DOCUMENT_ROOT']."/images/full-1091.jpg");
обратите внимание, что http://site.com/images/full-1091.jpg
не является файлом
что касается форматированного вывода («156,8 Кбайт» или «20,1 Мбайт»), попробуйте помочь себе и использовать поиск. Уже есть тонна ответов на этот вопрос.
<?php $contents=file_get_contents("http://site.com/images/full-1091.jpg"); // var_dump($contents); // $fp =fopen("1.jpeg","w"); file_put_contents("1.jpeg",$contents); $size= filesize("1.jpeg"); echo $size."in Bytes"; ?>
Проверьте, что это может сработать для вас