karinsch: bildname ohne Endung...

Hallo!

Ich bräuchte meinen Dateinamen ohne Endung. Das "$userfile_name" ist der Dateiname MIT Endung, aber wie bekomm ich die Endung weg? In asp hätt ich die Möglichkeit dass ich die Endung, die auch schon rausgefiltert wurde ($endung) einfach durch nichts "replace", aber wie geht das in PHP (kann selbst leider kein PHP)....

Vielen Dank im Voraus!
Lg Karin!

  1. Moin Karin

    <?php

    $path_parts = pathinfo("/www/htdocs/index.html");

    echo $path_parts["dirname"] . "\n";
    echo $path_parts["basename"] . "\n";
    echo $path_parts["extension"] . "\n";

    ?>

    Grüße

    Tom

    1. <?php

      $path_parts = pathinfo("/www/htdocs/index.html");

      echo $path_parts["dirname"] . "\n";
      echo $path_parts["basename"] . "\n";
      echo $path_parts["extension"] . "\n";

      ?>

      Danke erstmal!
      Aber da bekomm ich auch nur den ganzen bildnamen (also zb "bildname.jpg") und die Endung (".jpg") raus, aber nicht das "bildname", oder?

      Danke!
      lg karin

      1. <?php

        $path_parts = pathinfo("/www/htdocs/index.html");

        echo $path_parts["dirname"] . "\n";
        echo $path_parts["basename"] . "\n";
        echo $path_parts["extension"] . "\n";

        ?>

        Hallo Karin, hast Du es denn so ausprobiert, wie oben beschrieben?
        in basename steht doch nur noch der Dateiname drin, oder?

        Sonst kann die auch die Funktion basename("index.html",".html") weiterhelfen:
        $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"

        Tom

    2. Hallo,

      $path_parts = pathinfo("/www/htdocs/index.html");
      echo $path_parts["basename"] . "\n";

      ... gibt "index.html" zurueck.

      Karin moechte eben das ".html" weghaben.

      Dazu braucht sie die String-Funktionen:
      http://www.php.net/manual/de/ref.strings.php

      Z.B. mit strrpos()
      http://www.php.net/manual/de/function.strrpos.php
      die Position des letzten Punktes aufspueren und dann
      mit substr()
      http://www.php.net/manual/de/function.substr.php
      den Anfang des Strings bis zu dieser Position ausschneiden.

      Eine andere Moeglichkeit waere explode() mit dem Punkt als Trenner.
      http://www.php.net/manual/de/function.explode.php
      Das erste Teilstueck enthaelt dann alles bis zum ersten Punkt.

      Gruesse,

      Thomas

  2. Hallo Karin,

    das funktioniert auf jeden Fall:

    <?php

    $path_parts = pathinfo("/www/htdocs/index.html");

    echo $path_parts["dirname"] . "<br>\n";
    echo $path_parts["basename"] . "<br>\n";
    echo $path_parts["extension"] . "<br>\n";

    echo basename($path_parts["basename"],".".$path_parts["extension"])."<br>\n";

    ?>

    Grüße

    Tom