2015-06-10 3 views
0

Я не знаю, что делать disk_free_space и disk_total_space.Использование disk_free_space() и disk_total_space() в PHP

В документации говорится: «Возвращает доступное пространство на файловой системе или разделе диска» и «Возвращает общий размер файловой системы или раздела диска» соответственно. Между тем, аргумент описывается, в каждом случае, как «каталог файловой системы или раздела диска».

Могу ли я получить доступное дисковое пространство только для раздела или также для определенной папки?

Другими словами, нормально ли, что обе части этого скрипта возвращают одни и те же значения?

<?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 - он показывает размеры дисков/томов, а не размеры каталога.

1

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

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

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