Markus: Dateiname aus Pfad extrhahieren

Hi,

wie kann ich in PHP aus einem Pfad "D:\web\htdocs\bilder\bild1.jpg"
der in der Variabeln $pfad steht, den Dateinamen "bild1.jpg" in die Variable $realname extrahieren?

Ich habs schon so versucht:

$realname = strrchr($pfad,"\");
$realname1 = stripcslashes($realname);

aber ich bekemme so den letzten "" nicht anständig weg!
Thanks Markus

  1. Hallo Markus

    Versuchs mal damit:
    <?PHP
    $pfad_info = pathinfo("/www/users/test_php/zahlen.txt");
    echo $pfad_info["dirname"];
    echo "<br>";
    echo $pfad_info["basename"];
    echo "<br>";
    echo $pfad_info["extension"];
    ?>

    Als ausgabe bekommst du so:
    /www/users/test_php
    zahlen.txt
    txt

    Gruss Reto

    PS: Das ist ein Artikel aus SelfPHP

  2. Hallo Markus,

    dafür gibt es eine fertige Funktion:

    path = "/home/httpd/html/index.php";
    $file = basename($path);         // $file enthält den Wert "index.php"
    $file = basename ($path,".php"); // $file enthält den Wert "index"

    http://www.php.net/manual/de/function.basename.php

    Viele Grüße
    annA

    1. Das klappt leider nicht... Irgendwie geht das bei Windows Pfadangaben nicht...

      Noch eine Idee??

      1. Hi,

        Das klappt leider nicht... Irgendwie geht das bei Windows Pfadangaben nicht...

        laut Manual müsste es eigentlich gehen: "On Windows, both slash (/) and backslash () are used as path separator character. In other environments, it is the forward slash (/)."

        Du könntest allerdings auch folgendes machen:

        $pfad = explode('', 'D:\Dein\Pfad\nach\bild.jpg');
        $realname = $pfad[count($pfad)-1];

        Erklärung: Mit der Funktion explode [1] splittest du den String $pfad anhand des Trennzeichens '' in einen Array auf, und rufst dann das letzte Element aus diesem Array auf. Von count($pfad) [2] muss 1 abgezogen werden, da bei Arrays ab 0 gezählt wird.

        Ist vielleicht nicht ganz so elegant wie basename(), aber auf jeden Fall auch wirksam.

        [1] http://www.php.net/explode
        [2] http://www.php.net/count

        Grüße aus Darmstadt,
        Benjamin