общее пространство на диске php() минус свободное место на диске() не равно занимаемому пространству


Я хотел проверить свободное место в хранилище, где я храню вложения пользователей. Я пошел с disk_free_space() и disk_total_space(). В результате получается:

Свободное место: 5,47 ГБ
Общее пространство: 5,86 ГБ

Таким образом, занимаемое пространство = 0,39 ГБ.

Я также прошелся по файлам, чтобы определить их размер с помощью filesize(). В общей сложности файлы занимают 18,34 ГБ. (Максимальный размер файла составляет 4 МБ, поэтому примечание в руководстве по PHP в отношении 2 ГБ применяется примечание)

Итак:

Общее свободное пространство - Свободное пространство != Занятое пространство

Почему?

Файловая система находится на HP-UX. Я измерил все значения, используя одну и ту же учетную запись - я выполнил все команды из php-скрипта, выполнив скрипт с помощью интернет-браузера.

Я также проверил функции в Windows. Результаты были в порядке.

Я рассмотрел некоторые другие вопросы, связанные с функциями (Как получить дисковое пространство на сервере?, Как определить, сколько свободного места на вашем сервере? (php), Как определить, достаточно ли места на сервере для загруженного файла или нет?, Как получить место на диске на сервере?, Можно ли получить специальную информацию о локальном диске из PHP?, php disk_total_space), но не нашел ответа.

Author: Community, 2012-07-10

1 answers

В зависимости от операционной системы и используемой файловой системы это сильно зависит от каталога, в котором вы вызываете функции. Причина в том, что linux монтирует несколько дисков в одно большое дерево. Вы не можете просто вызвать disk_total_space('/'), потому что это дает вам только размер корневого раздела. Попробуйте disk_total_space($attachmentFolder);.

 4
Author: KingCrunch, 2012-07-10 10:37:00