In der täglichen Webentwicklung ist die Verwaltung des Speicherplatzes des Servers eine sehr wichtige Aufgabe. PHP bietet eine sehr bequeme Funktion disk_free_space () , mit der wir den verbleibenden Speicherplatz auf der Serverscheibe schnell anzeigen können. In diesem Artikel wird vorgestellt, wie diese Funktion verwendet wird, um den verbleibenden Speicherplatz der Festplatte zu erhalten und sie in Kombination mit den tatsächlichen Projektanforderungen anzuwenden.
disk_free_space () ist eine integrierte Funktion in PHP, die den freien Speicherplatz in Bytes der Festplattenpartition zurückgibt, in dem sich das angegebene Verzeichnis befindet. Wenn Sie wissen möchten, wie viel freier Speicherplatz derzeit in einer Festplattenpartition übrig bleibt, können Sie ihn einfach über diese Funktion erhalten.
Die grundlegende Syntax einer Funktion lautet wie folgt:
<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>$ Verzeichnis : Der angegebene Verzeichnispfad. Dieses Verzeichnis kann ein Pfad auf jeder Festplattenpartition sein, und wir bestehen normalerweise einen Verzeichnisweg wie / oder c: / .
Der Rückgabewert ist eine Ganzzahl, die den freien Speicherplatz der Festplatte in Bytes darstellt. Wenn ein Fehler auftritt, gibt die Funktion false zurück.
Angenommen, wir möchten den verbleibenden Speicherplatz des Root -Verzeichnisses / der Festplatte des Servers anzeigen. Wir können den folgenden Code verwenden:
<span><span><span class="hljs-meta"><?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">"Informationen über den verbleibenden Raum der Festplatte können keine Informationen erhalten"</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">"Verbleibender freier Speicherplatz: "</span></span><span> . </span><span><span class="hljs-variable">$freeSpace</span></span><span> . </span><span><span class="hljs-string">" Byte"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>Wenn Sie den obigen Code ausführen, gibt $ Freespace den verbleibenden Speicherplatz in Bytes auf dieser Festplatte zurück. Wenn ein Fehler auftritt, wird die Funktion falsch zurückgegeben, und wir können beurteilen, ob die Informationen basierend darauf erfolgreich erhalten wurden.
Obwohl disk_free_space () die Anzahl der Bytes in praktische Anwendungen zurückgibt, müssen wir sie normalerweise in eine verständliche Einheit wie MB oder GB umwandeln. Um diese Transformation zu implementieren, können wir eine einfache Funktion schreiben, um sie zu implementieren:
<span><span><span class="hljs-meta"><?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> >= </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-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">"Informationen über den verbleibenden Raum der Festplatte können keine Informationen erhalten"</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">"Verbleibender freier Speicherplatz: "</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">?></span></span><span>
</span></span>Durch die Funktion forderateize () können wir die Anzahl der Bytes in verständlichere Einheiten wie KB, MB, GB usw. umwandeln.
In einigen Szenarien müssen Entwickler möglicherweise den verbleibenden Speicherplatz regelmäßig überwachen, um zu vermeiden, dass Dienstunterbrechungen durch unzureichenden Speicherplatz verursacht werden. Sie können die oben genannten PHP -Skripte regelmäßig ausführen, indem Sie Timing -Aufgaben einrichten oder der Überwachungslogik der Festplatte zu Ihrer Anwendung hinzufügen.
Beispielsweise können Sie im Hintergrund Ihrer Webanwendung eine zeitgesteuerte Aufgabe hinzufügen, regelmäßig den Speicherplatz überprüfen und Warnbenachrichtigungen an den Administrator senden, wenn der verbleibende Speicherplatz unter einem bestimmten Schwellenwert liegt.
Durch die Funktion disk_free_space () von PHP können wir den verbleibenden Speicherplatz der Festplatte problemlos erhalten, um das Problem des unzureichenden Speicherplatzes rechtzeitig zu entdecken und Systemabstürze oder Serviceunterbrechungen zu vermeiden. In den tatsächlichen Anwendungen kann das Kombinieren von Zeitaufgaben und räumlichen Schwelleneinstellungen einen robusteren Speicherüberwachungsmechanismus für Webanwendungen bieten.