Wenn man mit dem Pfad einer Datei arbeitet, die zum Beispiel auf einem Fileserver abgelegt ist, der eine komplexe Verzeichnisstruktur hat, kann es vorkommen, dass dieser Pfad sehr lang und unübersichtlich wird. Ein solch langer Pfad lässt sich schwierig lesen.
Mithilfe der Funktion pathinfo() kann man den Dateipfad in seine Bestandteile zerlegen. Diese Funktion bekommt als Parameter einen Dateipfad übergeben, und gibt als Rückgabewerte den Verzeichnispfad, den Dateinamen und die Dateiendung zurück. So strukturiert lassen sich die Daten viel besser lesen.
Der Syntax:
pathinfo(zeichenkette);
Beispiel:
<?php
/*
* Created on 27.01.2010 by Nico Schubert
*/
$dateipfad = '/var/test/test.php';
$bestandteile_array = pathinfo($dateipfad);
print_r($bestandteile_array);
?>
Ausgabe:
Array
(
[dirname] => /var/test
[basename] => test.php
[extension] => php
[filename] => test
)
Erklärung:
In der Variablen $dateipfad ist der Dateipfad als Zeichenkette gespeichert. Mit der Funktion pathinfo() wird dieser Dateipfad in die Bestandteile Verzeichnispfad, Dateiname und Dateiendung zerlegt. Die einzelnen Bestandteile werden in einem Array abgelegt. Mithilfe der Funktion print_r() wird der Inhalt dieses Arrays ausgegeben. Der Inhalt des Arrays wird als Schlüssel/Wert-Paar ausgegeben. Das erste Element dieses Arrays mit dem Index „dirname“ ist der Dateipfad, in diesem Beispiel /var/test. Das zweite Element mit dem Index „basename“ ist der Dateiname, hier test.php. Als drittes Element ist in diesem Array die Dateiendung gespeichert, die im Beispielpfad „php“ ist. So und zu guter Letzt, ist unter dem letzten Index „filename“ der Name, der Datei enthalten.
Durch das Zerlegen eines Dateipfades hat man die Möglichkeit, Informationen auf dem Bildschirm viel strukturierter auszugeben, als wenn man mit dem kompletten Dateipfad arbeiten würde. Natürlich kann man das Array auch Sortieren vor der Ausgabe auf dem Bildschirm, dadurch kann man unter anderem die enthaltenen Dateipfade sortiert und nach Verzeichnispfad und Dateinamen ausgeben. Eine andere Anwendungsmöglichkeit ist die Realisierung eines Filters, indem man nur die Einträge ausgibt, die als drittes Element für die Dateiendung den Wert „php“ enthalten. So würde man zum Beispiel nach Dateien vom Typ „.php“ filtern. Die reinen Dateinamen ohne Verzeichnispfad erhält man, wenn man nur das Element mit dem Indesx „basename“ ausgibt.
Wenn Sie nur den Namen einer Datei aus dem Pfad ermitteln möchten, empfiehlt es sich, die Funktion basename() zu verwenden. Um den Dateipfad zu ermitteln, gibt es die Funktion dirname().