Я хочу проверить свободное место, оставшееся на моем сервере (используя услугу хостинга). Однако я не хочу знать размер целого диска, на котором случайно находится мой аккаунт. Я только хочу знать, что я использовал 456 МБ из 1 ГБ купленного места.
Я пытался использовать код из этого ответа (Свободное пространство учетной записи хостинга), позвольте мне привести его :
$free = disk_free_space("/");
$total = disk_total_space("/");
$percent = ($free/$total) * 100;
echo $percent;
Однако есть проблема. Сначала это дало мне целое свободное место на реальном устройстве. У меня на хостинге 1 ГБ места, и это решение говорит мне, что у меня свободно 202 ГБ. Кстати, я действительно не понимаю, почему этот вопрос был закрыт. Может быть, это было неясно, но проблема существует, и принятый ответ, на мой взгляд, немного неверен.
Я имею в виду решение, использующее exec()
и функцию bash, но возникает вопрос: Возможно ли это с использованием только PHP без использования exec()
? exec()
иногда блокируется, и его следует избегать из-за для решения проблем с проверкой кода. Конечно, например mysqldump()
нужно запускать с exec()
, но это одно из немногих исключений.
Возможная идея: я думал о суммировании всех файлов, которые есть у меня на сервере, и в каком-то файле config.php вписываю пространство учетной записи вручную. Это решает проблему, но не "хорошим" способом. Особенно, если кто-то купит еще 1 Гб, и забудет про конфиг "постоянный".
du
cli, но на самом деле вам потребуется разрешение на выполнение, которое обычно недоступно в дешевой размещенной среде. - person arkascha   schedule 17.04.2014