# pathinfo

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

pathinfo — Liefert Informationen über einen Dateipfad

### Beschreibung

pathinfo(string `$path`, int `$flags` = `PATHINFO_ALL`): array|string

pathinfo() gibt Informationen über einen Dateipfad (`path`) zurück: entweder als assoziatives Array oder als String, abhängig vom Parameter `flags`.

> Hinweis:

> Wie die aktuellen Pfadinformationen ermittelt werden können, ist im Abschnitt Vordefinierte Variablen beschrieben.

> Hinweis:

> pathinfo() verarbeitet lediglich den Eingabestring und kennt weder das tatsächliche Dateisystem noch Pfadkomponenten wie "`..`".

> Hinweis:

> Das Zeichen `\` wird nur auf Windows-Systemen als Trennzeichen zwischen Verzeichnissen interpretiert. Auf anderen Systemen wird es wie jedes andere Zeichen behandelt.

Achtung

pathinfo() berücksichtigt die Locale-Einstellung. Um einen Pfad, der Multibyte-Zeichen enthält, korrekt parsen zu können, muss die entsprechende Locale mit der Funktion setlocale() gesetzt werden.

### Parameter-Liste

`path`

  Der zu analysierende Dateipfad.

`flags`

  Gibt, falls vorhanden, ein bestimmtes Element an, das zurückgegeben werden soll. Mögliche Werte: `PATHINFO_DIRNAME`, `PATHINFO_BASENAME`, `PATHINFO_EXTENSION` oder `PATHINFO_FILENAME`.

  Falls `flags` nicht angegeben wird, werden alle verfügbaren Elemente zurückgegeben.

### Rückgabewerte

Falls der Parameter `flags` nicht angegeben wird, wird ein assoziatives Array mit den folgenden Elementen zurückgegeben: `dirname`, `basename`, `extension` (falls vorhanden) und `filename`.

> Hinweis:

> Wenn `path` mehr als eine Erweiterung hat, gibt `PATHINFO_EXTENSION` nur die letzte zurück, und `PATHINFO_FILENAME` entfernt nur die letzte. (Siehe auch das erste Beispiel weiter unten.)

> Hinweis:

> Falls `path` keine Erweiterung hat, wird das Element `extension` nicht zurückgegeben (siehe das zweite Beispiel unten).

> Hinweis:

> Beginnt `basename` von `path` mit einem Punkt, werden die folgenden Zeichen als `extension` interpretiert, und `filename` ist leer (siehe das dritte Beispiel unten).

Falls `flags` genutzt wird, gibt diese Funktion einen String mit dem gewünschten Element zurück.

### Beispiele

Beispiel #1 pathinfo()-Beispiel

`<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n";
?>`

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    /www/htdocs/inc
    lib.inc.php
    php
    lib.inc

Beispiel #2 pathinfo()-Beispiel für den Unterschied zwischen einer leeren und keiner Erweiterung

`<?php
$path_parts = pathinfo('/path/emptyextension.');
var_dump($path_parts['extension']);
$path_parts = pathinfo('/path/noextension');
var_dump($path_parts['extension']);
?>`

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

    string(0) ""

    Notice: Undefined index: extension in test.php on line 6
    NULL

Beispiel #3 pathinfo()-Beispiel für eine Punktdatei

`<?php
print_r(pathinfo('/some/path/.test'));
?>`

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

    Array
    (
        [dirname] => /some/path
        [basename] => .test
        [extension] => test
        [filename] =>
    )

Beispiel #4 pathinfo()-Beispiel mit Array-Dereferenzierung

Der Parameter `flags` ist keine Bitmaske. Es kann nur ein einziger Wert angegeben werden. Um nur eine begrenzte Menge von geparsten Werten auszuwählen, kann das Array wie folgt zerlegt werden:

`<?php
['basename' => $basename, 'dirname' => $dirname] = pathinfo('/www/htdocs/inc/lib.inc.php');
var_dump($basename, $dirname);
?>`

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

    string(11) "lib.inc.php"
    string(15) "/www/htdocs/inc"

### Siehe auch

- dirname() - Liefert den Pfad des übergeordneten Verzeichnisses
- basename() - Liefert den letzten Namensteil einer Pfadangabe
- parse_url() - Analysiert eine URL und gibt ihre Bestandteile zurück
- realpath() - Löst einen Pfad in einen absoluten und eindeutigen auf

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open