Position actuelle: Accueil> Derniers articles> Comment afficher rapidement l'espace restant du disque à l'aide de la fonction DISK_FREE_SPACE de PHP?

Comment afficher rapidement l'espace restant du disque à l'aide de la fonction DISK_FREE_SPACE de PHP?

gitbox 2025-09-30

Dans le développement Web quotidien, la gestion de l'espace de stockage du serveur est une tâche très importante. PHP fournit une fonction très pratique disque_free_space () , qui peut nous aider à afficher rapidement l'espace restant sur le disque du serveur. Cet article présentera comment utiliser cette fonction pour obtenir l'espace restant du disque et comment l'appliquer en combinaison avec les exigences réelles du projet.

Quelle est la fonction disk_free_space () ?

disk_free_space () est une fonction intégrée en PHP qui renvoie l'espace libre en octets de la partition de disque où réside le répertoire spécifié. Si vous voulez savoir combien d'espace libre reste actuellement dans une partition de disque, vous pouvez facilement l'obtenir via cette fonction.

La syntaxe de base d'une fonction est la suivante:

 <span><span><span class="hljs-title function_ invoke__">disk_free_space</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$directory</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>

Description du paramètre:

  • $ répertoire : le chemin du répertoire spécifié. Ce répertoire peut être un chemin sur n'importe quelle partition de disque, et nous passons généralement un chemin de répertoire, tel que / ou c: / .

Valeur de retour:

  • La valeur de retour est un entier représentant l'espace libre du disque, en octets. Si une erreur se produit, la fonction renvoie false .

Exemple: comment afficher l'espace restant sur le disque du serveur

Supposons que nous voulons afficher l'espace restant du répertoire / disque racine du serveur, nous pouvons utiliser le code suivant:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$directory</span></span><span> = </span><span><span class="hljs-string">'/'</span></span><span>;
</span><span><span class="hljs-variable">$freeSpace</span></span><span> = </span><span><span class="hljs-title function_ invoke__">disk_free_space</span></span><span>(</span><span><span class="hljs-variable">$directory</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$freeSpace</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Impossible d&#39;obtenir des informations sur l&#39;espace restant du disque"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Espace libre restant: "</span></span><span> . </span><span><span class="hljs-variable">$freeSpace</span></span><span> . </span><span><span class="hljs-string">" octet"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Lors de l'exécution du code ci-dessus, s'il y a un espace libre sur le disque où se trouve le répertoire racine, $ frespace renvoie l'espace restant en octets sur ce disque. Si une erreur se produit, la fonction reviendra fausse et nous pouvons juger si les informations ont été obtenues avec succès sur la base de cela.

Comment convertir les octets en unités plus lisibles?

Bien que disk_free_space () renvoie le nombre d'octets, dans les applications pratiques, nous devons généralement le convertir en une unité plus compréhensible, comme MB ou GB. Pour implémenter cette transformation, nous pouvons écrire une fonction simple pour l'implémenter:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">formatSize</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$size</span></span></span><span>) {
    </span><span><span class="hljs-variable">$units</span></span><span> = [</span><span><span class="hljs-string">'B'</span></span><span>, </span><span><span class="hljs-string">'KB'</span></span><span>, </span><span><span class="hljs-string">'MB'</span></span><span>, </span><span><span class="hljs-string">'GB'</span></span><span>, </span><span><span class="hljs-string">'TB'</span></span><span>];
    </span><span><span class="hljs-variable">$unitIndex</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>;

    </span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$size</span></span><span> &gt;= </span><span><span class="hljs-number">1024</span></span><span> &amp;&amp; </span><span><span class="hljs-variable">$unitIndex</span></span><span> &lt; </span><span><span class="hljs-title function_ invoke__">count</span></span><span>(</span><span><span class="hljs-variable">$units</span></span><span>) - </span><span><span class="hljs-number">1</span></span><span>) {
        </span><span><span class="hljs-variable">$size</span></span><span> /= </span><span><span class="hljs-number">1024</span></span><span>;
        </span><span><span class="hljs-variable">$unitIndex</span></span><span>++;
    }

    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">round</span></span><span>(</span><span><span class="hljs-variable">$size</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>) . </span><span><span class="hljs-string">' '</span></span><span> . </span><span><span class="hljs-variable">$units</span></span><span>[</span><span><span class="hljs-variable">$unitIndex</span></span><span>];
}

</span><span><span class="hljs-variable">$directory</span></span><span> = </span><span><span class="hljs-string">'/'</span></span><span>;
</span><span><span class="hljs-variable">$freeSpace</span></span><span> = </span><span><span class="hljs-title function_ invoke__">disk_free_space</span></span><span>(</span><span><span class="hljs-variable">$directory</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$freeSpace</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Impossible d&#39;obtenir des informations sur l&#39;espace restant du disque"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Espace libre restant: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">formatSize</span></span><span>(</span><span><span class="hljs-variable">$freeSpace</span></span><span>);
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Grâce à la fonction FormatSize () , nous pouvons convertir le nombre d'octets en unités plus compréhensibles, telles que KB, MB, GB, etc.

Comment gérer la surveillance de l'espace restant du disque?

Dans certains scénarios, les développeurs peuvent avoir besoin de surveiller régulièrement l'espace disque restant pour éviter les interruptions de service causées par un espace disque insuffisant. Vous pouvez exécuter régulièrement les scripts PHP ci-dessus en configurant les tâches de synchronisation ou ajouter une logique de surveillance d'espace disque à votre application.

Par exemple, vous pouvez ajouter une tâche chronométrée en arrière-plan de votre application Web, vérifier régulièrement l'espace disque et envoyer des notifications d'avertissement à l'administrateur si l'espace restant est inférieur à un certain seuil.

Conclusion

Grâce à la fonction DISK_FREE_SPACE () de PHP, nous pouvons facilement obtenir l'espace restant du disque, nous aidant à découvrir le problème de l'espace de stockage insuffisant dans le temps et à éviter les accidents du système ou les interruptions de service. Dans les applications réelles, la combinaison des tâches de synchronisation et des paramètres de seuil spatial peut fournir un mécanisme de surveillance de stockage plus robuste pour les applications Web.