SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=212&group=38
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Informationen über Dateien und Verzeichnisse


Für die Arbeit mit Dateien und Verzeichnissen sollten Sie ausreichend Informationen über die vorliegenden Pfadstrukturen, einzelne Verzeichnisse und Dateien erlangen. PHP stellt Ihnen eine Reihe nützlicher Funktionen zur Verfügung, einige davon habe ich für Sie in der folgenden Tabelle zusammengefasst:

FunktionBeispielBedeutung
basename (path [,suffix])basename ($path,".php");Liefert aus einer Pfadangabe den Namen einer Datei, inklusive der Dateiendung. Wird der optionale Parameter suffix gesetzt, wird die Endung aus dem Dateinamen entfernt.
chgrp (filename, group)chgrp ("/verzeichnis/datei", " Mitarbeiter ");Ändert die Gruppenzugehörigkeit einer Datei.
chmod (filename, mode)chmod ("/verzeichnis/datei", 0755);Ändert die Zugriffsrechte einer Datei.
chown (filename, user)chown ("/verzeichnis/datei", "fred");Ändert den Eigentümer der Datei. Nur der Superuser kann den Eigentümer einer Datei ändern.
dirname(path)dirname ($path);Liefert aus einer Pfadangabe den Pfad ohne den Dateinamen.
disk_free_space(directory)disk_free_space("/");Liefert den freien Speicherplatz in einem Verzeichnis.
disk_total_space(directory)disk_total_space("/");Liefert die Gesamtgröße eines Verzeichnisses.
file_exists(filename)file_exists($filename);Prüft, ob eine bestimmte Datei vorhanden ist.
file_get_contents (filename [, use_include_path [, context]])file_get_contents($filename);Liest die gesamte Datei in einen String. Diese Funktion ist mit der Funktion file() identisch, außer dass file_get_contents() die Datei in einem String zurückgibt.
file_put_contents (filename, data [, flags [, context]])file_put_contents($filename);Schreibt eine Zeichenfolge in eine Datei.
fileatime (filename)fileatime($filename);Liefert das Datum des letzten Zugriffs für eine Datei.
filegroup (filename)filegroup($filename);Liefert die Gruppenzugehörigkeit einer Datei.
filemtime (filename)filemtime ($filename);Liefert Datum und Uhrzeit der letzten Dateiänderung.
fileowner (filename)fileowner ($filename);Liefert den Eigentümer der Datei.
fileperms (filename)fileperms ($filename);Liefert die Zugriffsrechte (Dateiattribute) einer Datei.
filesize (filename)filesize ($filename);Liefert die Größe einer Datei in Byte.
filetype (filename)filetype ($filename);Liefert den Typ einer Datei (file, dir).
is_dir (filename)is_dir ($filename);Prüft, ob der Dateiname ein Verzeichnis ist.
is_executable (filename)is_executable ($filename);Prüft, ob eine Datei ausführbar ist bzw. es sich um eine ausführbare Datei handelt.
is_file (filename)is_file ($filename);Prüft, ob der Dateiname eine reguläre Datei ist.
is_link (filename)is_link ($filename);Prüft, ob der Dateiname ein symbolischer Link ist.
is_readable (filename)is_readable ($filename);Prüft, ob eine Datei gelesen werden kann.
is_uploaded_file (filename)is_uploaded_file ($filename);Prüft, ob die Datei mittels HTTP POST geladen wurde.
is_writable (filename)is_writable ($filename);Prüft, ob in eine Datei geschrieben werden kann.
touch (filename [, time [,atime]])touch ($filename);Setzt Datum und Uhrzeit der letzten Änderung und des letzten Zugriffs der durch filename angegebenen Datei auf den durch time angegebenen Wert.
umask(mask)umask(0022);Ändert die aktuelle umask, die Zugriffsrechte bzw. Berechtigung.


Die meisten Funktionen erwarten eine Pfadangabe als Argument. Diese muss sich in der Regel auf eine existierende Datei beziehen. Den beiden Funktionen basename() und dirname() genügt ein String, der einen Pfad bezeichnet. Ob Datei und Verzeichnis existieren, ist dabei nicht relevant, wie die folgenden Codezeilen beweisen:
<?php
// Dateiname samt Endung
echo basename("C:/xamppbuch/php/php.exe");

// Pfad ohne Dateiname
echo dirname("C:/xamppbuch/php/php.exe");
?>

Ausgabe
php.exe
C:/xamppbuch/php
{PSP}Die folgenden Anweisungen erwarten jedoch, dass der im Argument angegebene Pfad existiert:

<?php

// (True oder False)
echo file_exists("C:/xamppbuch/php/php.exe") . "<br>";

// Größe
echo filesize("C:/xamppbuch/php/php.exe") . "<br>";

// Typ
echo filetype("C:/xamppbuch/php/php.exe") . "<br>";

?>

Ausgabe
1
28725
file

Sollte der Pfad nicht existieren, geben die Funktionen den Wert false zurück. Dies gilt auch für Funktionen wie is_file(), is_dir(), is_writable(), usw. Im Erfolgsfall erhalten Sie den Wert true.

Beispiel

<?php

echo is_dir("C:/xamppbuch/php") . "<br>";
echo is_executable("C:/xamppbuch/php/php.exe") . "<br>";
echo is_file("C:/xamppbuch/php/php.exe") . "<br>";

?>

Ausgabe

1
1
1

Die Funktionen eignen sich übrigens hervorragend für den Einsatz in IF-Anweisungen.

Beispiel

<?php

if (is_dir("C:/xamppbuch/php")) {
  echo "Verzeichnis ist vorhanden!";
}

?>

Ausgabe
Verzeichnis ist vorhanden!

Achtung: Die Pfadangaben dürfen keinen abschließenden Slash enthalten, z. B. C:/xamppbuch/php/. Dies würde zu einer Fehlermeldung führen!