Мне не понятно на что disk_free_space
а также disk_total_space
должны делать.
Документация гласит «Возвращает доступное пространство в файловой системе или разделе диска» и «Возвращает общий размер файловой системы или раздела диска» соответственно. Между тем, аргумент описывается, в каждом случае, как «каталог файловой системы или раздела диска».
Так могу ли я получить доступное дисковое пространство только для раздела или также для конкретной папки?
Другими словами, это нормально, что обе части этого скрипта возвращают одинаковые значения?
<?php
$path = '/home/bilingueanglais'; // an estimated 14 GB according to Webmin
$free = floor( disk_free_space( $path ) / ( 1024 * 1024 ) );
$total = floor( disk_total_space( $path ) / (1024 * 1024 ) );
echo 'Diskspace for path `' . $path . '`:<br>';
echo $free . 'MB out of ' . $total . ' MB<br><br><br>';
$path = '/home/bilingueanglais/public_html/assets/theme'; // just 225 KB in reality
$free = floor( disk_free_space( $path ) / ( 1024 * 1024 ) );
$total = floor( disk_total_space( $path ) / (1024 * 1024 ) );
echo 'Diskspace for path `' . $path . '`:<br>';
echo $free . 'MB out of ' . $total . ' MB<br><br><br>';
?>
Он возвращает те же значения, потому что эти функции специально смотрят на объем свободная / общая вместимость соответственно.
Думайте об этом как о выходе df
в Linux / OS X / etc — показывает размеры дисков / томов, а не размеры каталогов.
Это * nix соглашение. Допустим, у вас есть файловая система, смонтированная на /var/www
:
disk_free_space('/var/www');
вернет тот же результат, что и disk_free_space('/var/www/foobar.com');
потому что они имеют одинаковую файловую систему, и это то, что функция отчетности.
То, что вы запускаете, скорее всего, сообщает об использовании диска всем сервером, а не только вашим пользователем.