PHP verfügt über viele dateisystembezogene Funktionen, die Ihnen nicht nur beim Öffnen von Dateien helfen, sondern auch Verzeichnisinhalte anzeigen, Dateien verschieben usw. Viele Leute haben sogar webbasierte Dateimanager mit PHP geschrieben.
Zunächst muss ich Sie an etwas zum Dateipfad erinnern: In Windows können Sie im Dateipfad einen Schrägstrich „/“ oder einen Backslash „\“ verwenden, während andere Betriebssysteme nur „/“ verwenden. Aus Kompatibilitätsgründen verwenden die folgenden Beispiele die „/“-Darstellung:
Das folgende einfache Skript zeigt eine grundlegende Verzeichnisliste an. Kommentare sind im Code und erläutern jeden Schritt:
<? /* Geben Sie den vollständigen Pfad zu dem Verzeichnis an, auf das Sie zugreifen möchten, in der Variablen $dir_name*/
$dir_name = /home/me/;
/* Erstellen Sie ein Handle und öffnen Sie das Ergebnis des angegebenen Verzeichnisses* /
$dir = opendir($dir_name);
/* Beginnen Sie mit dem Hinzufügen eines Textstücks an der Stelle, an der das Listenelement (Dateiname) platziert wird */
$file_list = <ul>
/* Verwenden Sie die while-Anweisung zum Lesen aller Elemente des geöffneten Verzeichnisses. Wenn der Dateiname weder „.“ noch „..“ ist, dann geben Sie den Dateinamen in der Liste aus */
while ($file_name = readdir($dir)) {
if (($file_name != .) && ($file_name != ..)) {
$file_list .= <li>$file_name;
}
}
/* Schließe die Liste ab*/
$file_list .= </ul>;
/* Schließe das geöffnete Verzeichnis-Handle und beende das PHP-Codesegment*/
?
>
<!-- Starte deinen HTML-Code -->
<HTML >
<KOPF>
<TITEL>Verzeichnisliste</TITEL>
</KOPF>
<KÖRPER>
<!-- Verwenden Sie PHP, um den Namen des gelesenen Verzeichnisses auszugeben -->
<P>Dateien in: <? echo $dir_name ?></p>
<!-- Verwenden Sie PHP, um die Verzeichnisliste auszudrucken -->
<? echo $file_list ?>
</KÖRPER>
</HTML>
Zu diesem Zeitpunkt gibt es bereits eine Verzeichnisliste. Sie müssen bedenken, dass zum Lesen des Inhalts eines Verzeichnisses oder einer Datei (Sie werden es bald sehen) die PHP-Plattform, auf der sich der Benutzer befindet, mindestens über Leseberechtigung für das Verzeichnis oder die Datei verfügen muss.
Das folgende Beispiel zeigt, wie Dateien kopiert werden:
<? /* Geben Sie den Pfad der zu kopierenden Datei in die Variable $original ein und den Zielpfad, der kopiert werden soll, in die Variable $copied */
$original = /home/me/ mydatabasedump;
$copied = /archive/mydatabasedumo_1010;
/* Verwenden Sie die Funktion copy(), um die Quelldatei zum Ziel zu kopieren, oder beenden Sie mit der Ausgabe einer Fehlermeldung*/
@copy($original, $copied) oder die(Kopieren nicht möglich Datei.);
?>
Das Beispielskript ist der erste Schritt beim Sichern des Systems. Wenn das Skript ausgeführt wird, kopiert es aus Sicherheitsgründen zunächst die Datenbank an einen anderen Speicherort. Durch Ändern der Crontab können Sie diese Datei zu einem ausgewählten Zeitpunkt ohne Benutzereingriff ausführen.
Vorausgesetzt, Lynx ist bereits auf dem System, können Sie einen Crontab-Eintrag erstellen, um Lynx auszuführen und auf Dateien zuzugreifen. Durch den Zugriff auf die Datei wird das Skript ausgeführt und eine Kopie der Datei erstellt. Im folgenden Beispiel wird das Skript um 5 Uhr morgens ausgeführt und dann Lynx heruntergefahren:
0 5 * * * [Benutzername] lynx -dump http://localhost/copyfile.php 1>/dev/null 2>&1
Wenn Sie die PHP-CGI-Version ausführen, können Sie den Lynx-Teil überspringen und auf die Binärdateien verweisen:
0 5 * * * [Benutzername] php /path/to/copyfile.php 1>/dev/null 2>&1