Freitag, 31. Dezember 2010

Kleinigkeiten: Dateiangaben

Wenig aufregend, aber immer wieder benötigt: Informationen über Dateien oder Teilangaben aus einer vollständige Pfadangabe. Ein typischer Klassiker, der nicht oft genug wiederholt werden kann - jetzt endlich auch hier. Eben aus der Rubrik Kleinigkeiten.

Wir haben eine vollständige Dateiangabe inklusive Pfad, wie wir sie beispielsweise durch "glob" erhalten würden.
$Datei = 'd:/Ordner/datei.txt';
Zuerst wollen wir etwas über die Date an sich erfahren.
file_exists($Datei); // existiert die Datei?
    is_file($Datei);     // ist es eine Datei?
    filemtime($Datei);   // letzte Aenderung als Unix-Zeit
    filesize($Datei);    // Dateigroesse in Byte
Das genügt uns aber nicht, jetzt wollen wir es genauer wissen.
basename($Datei);            // datei.txt
    basename($Datei, '.txt');    // datei
    basename($Datei, '.TxT');    // datei.txt
    dirname($Datei);             // d:/Ordner
    dirname(dirname($Datei));    // d:\
"basename" kann als zweiten Paremeter eine Dateiendung übergeben werden. Hat die Datei exakt diese Endung (auch Groß- und Kleinschreibung), wird die Dateiendung im Ergebnis unterdrückt.

Die Funktion "dirname" kann mehrfach verwendet werden. Geht man zu tief, gibt es keinen Fehler, sondern der tiefste Teil des Pfades bleibt immer bestehen, hier 'd:\'. Unter Windows sollte man immer ein Auge darauf haben ob "/" oder "\" verwendet oder als Ergebnis angezeigt wird. Windows selbst kann mit beiden Angaben arbeiten.

Alternativ zu "basename" und "dirname" gibt es die Funktion "pathinfo", die als Ergebnis ein Array erzeugt. Besonderheit hier ist die Möglichkeit sich explizit die Dateiendung ausgeben zu lassen.

$NamensTeil = pathinfo($Datei);

    $NamensTeil['filename'];   // datei
    $NamensTeil['basename'];   // datei.txt
    $NamensTeil['extension'];  // txt
    $NamensTeil['dirname'];    // d:/Ordner
Kein Zauber, nicht einmal aufregend, aber immer wieder benötigt.

Keine Kommentare:

Kommentar veröffentlichen