diskpace — использование disk_free_space () и disk_total_space () в переполнении стека

Мне не понятно на что 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>';

?>

0

Решение

Он возвращает те же значения, потому что эти функции специально смотрят на объем свободная / общая вместимость соответственно.

Думайте об этом как о выходе df в Linux / OS X / etc — показывает размеры дисков / томов, а не размеры каталогов.

0

Другие решения

Это * nix соглашение. Допустим, у вас есть файловая система, смонтированная на /var/www:

disk_free_space('/var/www'); вернет тот же результат, что и disk_free_space('/var/www/foobar.com'); потому что они имеют одинаковую файловую систему, и это то, что функция отчетности.

То, что вы запускаете, скорее всего, сообщает об использовании диска всем сервером, а не только вашим пользователем.

1

По вопросам рекламы [email protected]