Strip funktion
Schotti
- php
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
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
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
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
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
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
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
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()
(-:
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
man pathinfo()
Nee, da schau mal selber nochmal genau hin.
Das kommt davon, wenn man seinem Gedächtnis vertraut... Werd ich nie wieder tun :-)
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
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().