Schotti: Strip funktion

Hallo,

kann mir jemand sagen, ob es die Strip - Funktion auch für dateiendungen gibt?´
Oder wenn es nicht mit einer Strip funktion geht, wie kann ich dann die Dateiendungen von einer Datei sonst weg bekommen?

Gruß

Schotti

  1. Hallo,

    wie kann ich dann die Dateiendungen von einer Datei sonst weg bekommen?

    Dateiendungen haben die Eigenschaft am Ende des Dateinamens zu stehen. Sie sind vom Rest mittels Punkt getrennt. Das solltest du dir zunutze machen die Endung zu isolieren. Das was du möchtest ist dann der Dateiname vom Anfang, bis zum ersten Zeichen gefunden Endung. Klar?

    strrpos() für die erste Aufgabe und substr() für die zweite.

    HTH

    Jochen

    --
    Heute schon gescribbelt?
    Scribbleboard
    1. Hallo,

      strrpos() für die erste Aufgabe und substr() für die zweite.

      Habe das mit strrpos() und substr() probiert,
      habe aber jetzt das Problem, das er mir immer eine Zahl zurückgibt.
      Ich gebe als Variable z. B. test.jpg ein, dann liefert er mir 4 zurück!
      Weíßt du dafür eine Lösung?

      Gruß

      Schotti

      1. Hallo,

        strrpos() für die erste Aufgabe und substr() für die zweite.

        Habe das mit strrpos() und substr() probiert,
        habe aber jetzt das Problem, das er mir immer eine Zahl zurückgibt.
        Ich gebe als Variable z. B. test.jpg ein, dann liefert er mir 4 zurück!
        Weíßt du dafür eine Lösung?

        lies Dir bitte http://de3.php.net/manual/de/function.substr.php und http://de3.php.net/manual/de/function.strrpos.php durch!

        Gruß aus Berlin!
        eddi

      2. Hello,

        strrpos() für die erste Aufgabe und substr() für die zweite.

        Habe das mit strrpos() und substr() probiert,
        habe aber jetzt das Problem, das er mir immer eine Zahl zurückgibt.
        Ich gebe als Variable z. B. test.jpg ein, dann liefert er mir 4 zurück!

        Ja, die Zeichen des Strings werden von 0 an gezählt. Daher steht der Punktion an Offset 4.

        Da Du aber den letzten Punkt im Dateinamen suchst, ist str_pos() sowieso die falsche Funktion.
        Du suchst http://de3.php.net/manual/de/function.strrpos.php
        Da muss man dann aber auch nachfragen, ob das Ergebnis nicht identisch false ist

        if(($pos = str_rpos($dateiname,'.'))!==false)
          {

        ## hier weiter

        }

        Außerdem muss man prüfen, ob der Dateiname nicht mit einem Punkt anfängt.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Moin!

          Hello,

          strrpos() für die erste Aufgabe und substr() für die zweite.

          ^

          Habe das mit strrpos() und substr() probiert,

          ^

          habe aber jetzt das Problem, das er mir immer eine Zahl zurückgibt.
          Ich gebe als Variable z. B. test.jpg ein, dann liefert er mir 4 zurück!

          Da Du aber den letzten Punkt im Dateinamen suchst, ist str_pos() sowieso die falsche Funktion.

          Hat er ja auch gar nicht genommen - strpos und strrpos zählen beide von vorne.

          if(($pos = str_rpos($dateiname,'.'))!==false)

          Error: Undeclared function str_rpos() at line...

          Außerdem muss man prüfen, ob der Dateiname nicht mit einem Punkt anfängt.

          Warum denn explizit dieses?

          Ich empfehle dringend die Verwendung der Funktion pathinfo(). Einfacher auf dem Silbertablett serviert bekommen kann man die Extension doch gar nicht mehr.

          - Sven Rautenberg

          1. Hallo Sven,

            Ich empfehle dringend die Verwendung der Funktion pathinfo(). Einfacher auf dem Silbertablett serviert bekommen kann man die Extension doch gar nicht mehr.

            die Extension ja, aber wollte der OP nicht die Ressource ohne selbige?

            Grüße,

            Jochen

            --
            Heute schon gescribbelt?
            Scribbleboard
            1. Ich empfehle dringend die Verwendung der Funktion pathinfo(). Einfacher auf dem Silbertablett serviert bekommen kann man die Extension doch gar nicht mehr.

              die Extension ja, aber wollte der OP nicht die Ressource ohne selbige?

              man pathinfo()

              (-:

              1. Hello dedlfix,

                die Extension ja, aber wollte der OP nicht die Ressource ohne selbige?

                man pathinfo()

                Nee, da schau mal selber nochmal genau hin. Der Basename aus pathinfo() ist immer einschließlich Extension. Aber mittels zusätzlichem basename() kann man die dan auch noch entfernen.
                Das ist dann zwar auch eine recht teure Konstruktion aber in diesem fall könnte sich der Preis rechnen, denn eine Lücke zu reißen in das Filesystem ist meistens teurer.

                Harzliche Grüße aus http://www.annerschbarrich.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau
                1. man pathinfo()

                  Nee, da schau mal selber nochmal genau hin.

                  Das kommt davon, wenn man seinem Gedächtnis vertraut... Werd ich nie wieder tun :-)

          2. Hello,

            Ich empfehle dringend die Verwendung der Funktion pathinfo(). Einfacher auf dem Silbertablett serviert bekommen kann man die Extension doch gar nicht mehr.

            Er will ja nicht die Extension einzeln, sondern den Basename ohne Extension

            Also braucht er erst pathinfo() um die Endung zu ermitteln und dann kan  er mittels basename() aus dem Namen die Extension entfernen, sofern eine vorhanden war.

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
  2. kann mir jemand sagen, ob es die Strip - Funktion auch für dateiendungen gibt?´

    Bau dir aus den Funktionen des Dateisystems basename() und  dirname() was zusammen oder nimm pathinfo().