PHP/Dateioperatoren
Zur effektiven Arbeit mit Dateien sind Funktionen zum Verschieben, Löschen und Umbenennen notwendig. Die einfachen Dateifunktionen setzen voraus, dass die Namen der zu behandelnden Dateien bekannt sind. Vollständige oder relative Pfadangaben können nach Bedarf eingesetzt werden.
Funktion | Beschreibung |
---|---|
copy | Kopiert eine Datei. Im Erfolgsfall wird "TRUE" zurückgegeben, sonst "FALSE". Platzhalterzeichen sind nicht erlaubt. |
rename | Benennt eine Datei um oder verschiebt sie. Stimmt der Pfad von Quelle und Ziel nicht überein, so wird die Datei verschoben, auch wenn der Dateiname gleich bleibt. Im Erfolgsfall wird "TRUE" zurückgegeben, sonst "FALSE". |
unlink | Löscht eine Datei. Im Erfolgsfall wird "TRUE" zurückgegeben, sonst "FALSE". |
Das folgende Beispiel legt zu einer Datei eine Sicherheitskopie an und ändert dabei die Dateinamenserweiterung. Zur Ausführung des Skripts werden Schreibrechte für den Webnutzer (www-data) im Verzeichnis "logdata" benötigt. Die Funktion "copy" gibt "TRUE" zurück, wenn der Kopiervorgang erfolgreich war, andernfalls wird "FALSE" zurückgegeben. PHP gibt ausserdem eine Warnung aus, die durch Voranstellen des Zeichens "@" vor den Funktionsaufruf unterdrückt werden kann.
<?php
$path = "data";
$file = "muster.txt";
echo "<p>Kopiere Datei <b>$file</b></p>\n";
if (!@copy("$path/$file", "logdata/$file.bak"))
{
echo "<p>Datei $file nicht gefunden.</p>\n";
}
else
{
echo "<p>Datei $file erfolgreich gesichert.</p>\n";
}
?>
|
Kopiere Datei muster.txt Datei muster.txt erfolgreich gesichert. |
Auch beim Umbenennen und Verschieben von Dateien ist zu beachten, dass der Nutzer im Zielverzeichnis Schreibrechte benötigt. Damit das Skript mehrfach ausgeführt werden kann, werden die Änderungen am Schluss des folgenden Skripts gleich wieder rückgängig gemacht.
<?php $file = "data/muster.txt"; echo "Verschiebe Datei: $file \n";$new = "data/muster.txt.bak"; if (!rename($file, $new)) { echo "Datei $file nicht gefunden \n";} else { echo "Datei $file erfolgreich nach $new verschoben \n";}
copy ($new, $file); ?> </source> |
Verschiebe Datei: data/muster.txt Datei data/muster.txt nicht gefunden |