Mit Hilfe der Funktion basename()
lässt sich aus einem Pfad mit Dateinamen der Dateiname oder das letzte angegebene Verzeichnis extrahieren. Dabei wird als erster Parameter der zu analysierende String übergeben. Als zweiter Parameter kann ein Suffix des Dateinamens übergeben werden, welches zusätzlich abgeschnitten wird. Es ist zu beachten, dass diese Funktion losgelöst von dem eigentlichen Dateisystem arbeitet. Sie gehört zu den String-verarbeitenden Funktionen.
file_exists()
prüft, ob unter dem als Parameter angegebenen Ort eine Datei existiert. is_readable()
beziehungsweise is_writeable()
prüft, ob die Datei lesbar beziehungsweise schreibbar ist. Von allen drei Funktionen wird ein Wahrheitswert zurückgeliefert, der über den Zustand Auskunft gibt.
Die Funktion chmod()
ändert die Zugriffsrechte einer Datei. Hierbei wird als erster Parameter der Pfad mit Dateinamen angegeben. Als zweiter Parameter die zukünftigen Zugriffsrechte in Linuxschreibweise. Es ist ratsam, diese in Oktalschreibweise anzugeben, da die Funktion diese oktal auswertet. Der Rückgabewert gibt darüber Auskunft, ob die Änderung Erfolg hatte.
Mit der Funktion chown()
beziehungsweise chgrp()
wird der Eigentümer beziehungsweise die Gruppe einer Datei geändert. Die Angabe der Datei erfolgt als erster Parameter. Der neue Eigentümer beziehungsweise die Gruppe als zweiter. Der Rückgabewert gibt wiederum darüber Auskunft, ob die Änderung Erfolg hatte.
Die Funktion rename()
benennt eine Datei um. Die Funktion copy()
kopiert eine Datei. Beide Male wird die Quelle als erster Parameter übergeben. Das Ziel wird als zweiter Parameter angegeben. Der Rückgabewert der Funktion teilt mit, ob die Aktion erfolgreich war.
Mit Hilfe von unlink()
wird eine Datei gelöscht. Eine Funktion delete()
existiert nicht. Der Funktion unlink()
wird als einziger Parameter die zu löschende Datei übergeben. Der Rückgabewert ist true
, wenn die Datei gelöscht wurde, andernfalls false
.
Besonders für das Ausliefern von Dateien über HTTP-Verbindungen, wird der Mime-Type einer Datei benötigt. PHP verfügt über einen Mechanismus, diesen aus einer eigenen Datei auszulesen oder die PHP-interne Liste zu verwenden.
Mit finfo_open()
wird eine neue FileInfo-Ressource angefordert. Dieser Funktion kann als erstes eine Anzahl an Flags übergeben werden und als zweites ein Magic File, welches die Mime-Informationen beinhaltet. Beides kann jedoch weggelassen werden, um die Standardinformationen zu nutzen. Die Funktion finfo_file()
bekommt als ersten Parameter die Ressource übergeben und dann den Dateinamen. Sie gibt den Mime-Type zurück, der zu diesem Dateinamen passt. Mit finfo_close()
wird die Ressource wieder geschlossen. Zu diesem Vorgehen existiert auch ein objektorientierter Stil, so dass keine Ressource durchgereicht werden muss.
Jedes Programm wird innerhalb eines Verzeichnisses ausgeführt. Von diesem Verzeichnis ausgehend können andere Verzeichnisse innerhalb des Dateisystems relativ angesprochen werden. PHP bietet die Möglichkeit, mit Hilfe der Funktion getcwd()
, welche keine Parameter entgegennimmt, das aktuelle Verzeichnis absolut zur Dateisystemwurzel zu ermitteln. Mit Hilfe der Funktion chdir()
kann von diesem Verzeichnis aus ein neues Verzeichnis gewählt werden. Entweder wird hierbei als Parameter ein absoluter Pfad übergeben oder es kann mit einem relativen Pfad von dem aktuellen Verzeichnis an navigiert werden. Die Funktion gibt einen boolschen Rückgabewert, der darüber Auskunft gibt, ob der Wechsel vollzogen werden konnte.
In manchen Linux-Systemen ist es möglich, den Wurzel des sichtbaren Dateisystems innerhalb des realen Dateisystems zu verschieben. Dies geschieht mit der Funktion chroot()
. Als Parameter wird das neue Wurzelverzeichnis übergeben. Der Rückgabewert gibt wiederum darüber Auskunft, ob das Kommando erfolgreich war.
Verzeichnisinhalte lassen sich listen, indem man mit der Funktion opendir()
sich zunächst ein Verzeichnishandle erzeugt. Der Funktion opendir()
wird dafür als Parameter das gewünschte Verzeichnis übergeben. Mit Hilfe des Handles können Verzeichnisinhalte nacheinander mit der Funktion readdir()
abgefragt werden. Gibt die Funktion \texttt{false} zurück, so ist das Ende des Verzeichnisses erreicht. Mit Hilfe von closedir()
wird das Dateisystemhandle wieder freigegeben:
1 2 3 4 5 6 |
<?php $handle = opendir('.'); while (false !== ($eintrag = readdir($handle))) { echo ("$eintrag\n"); } ?> |
Mit Hilfe der Funktion rmdir()
, die wiederum den Verzeichnisnamen als Parameter übergeben bekommt, kann ein Verzeichnis gelöscht werden. Das Verzeichnis muss dazu leer sein.