Webstatt.org - Community seit 2006 - 2012 (2024?)

Datei.name aus Datei.name.endung isolieren.

Avatar user-118
13.08.2006 23:36

Guten Tag,

jmd. ne Idee wie man obiges mit einer kurzen Funktion lösen kann ?

Man könnte es mit explode machen und dann alle bis auf das letzte Element des Arrays ausgeben. Unbequem wird es dann wenn man im Dateinamen auch '.' hat. Auf der anderen Seite könnte man es auch mit length und substring machen. Welche Version würdet ihr preferieren ? Was ist besser für die Performance ?

mfg Alex

edit://

Habe es nun so gelöst:

  function isolate_name($file) { 
$suffix = substr(strrchr ($file, "."zwinkern,1); // Endung isolieren
$length_filename = (strlen($file)-(strlen($suffix)+1)); // Länge des Filestrings - Länge des Endungsstring + den Punkt.
$file_name = substr($file, 0, $length_filename);
return $file_name;
}


Ist da prinzipiell was gegen einzuwenden ?

Ich brauche keine Signatur
Avatar user-317
13.08.2006 23:50

Kommt drauf an, ob die Dateiendung gleichbleibend viele Zeichen hat.

Avatar user-118
13.08.2006 23:50

Original von user-317
Kommt drauf an, ob die Dateiendung gleichbleibend viele Zeichen hat.


Das habe ich in obiger Funktion abgedeckt.

Ich brauche keine Signatur
Avatar user-317
14.08.2006 00:14

Tja, dein Edit kam paar Sekunden zu spät frech

Avatar user-300
14.08.2006 00:25

Ab PHP 5.2.0
echo pathinfo('test.php', PATHINFO_FILENAME);


Sonst
$datei = 'test.php';
echo substr($datei, 0, -strlen(pathinfo($datei, PATHINFO_EXTENSION) . '.'zwinkern);

Avatar user-182
14.08.2006 12:28

echo strrev(substr(strrev($string), 0, strpos(strrev($string), '.'zwinkern));
lächeln
($string = dateiname)

Seid ihr auch schon wix'r? xD
Avatar user-300
14.08.2006 15:34

Original von user-182
echo strrev(substr(strrev($string), 0, strpos(strrev($string), '.'zwinkern));
lächeln
($string = dateiname)


Hä? Die Dateiendung bekommt man viel einfacher zwinkern

Avatar user-118
15.08.2006 00:44

Original von user-300
Sonst
$datei = 'test.php';
echo substr($datei, 0, -strlen(pathinfo($datei, PATHINFO_EXTENSION) . '.'zwinkern);


da schneidet er nur den letzten Buchstaben der Endung ab.

Ich brauche keine Signatur
Avatar user-300
15.08.2006 10:49

Was hast du denn für eine PHP Version? Das passiert wenn die Konstante PATHINFO_EXTENSION (PHP 4/5) nicht existiert. Die Konstante hat den Wert 4. Mit folgender Korrektur sollte es gehen:

echo substr($datei, 0, -strlen(pathinfo($datei, 4) . '.'zwinkern);

Avatar user-255
15.08.2006 13:05

Uhh...
$endung = substr($name, strrpos($name, '.'zwinkern + 1);
$titel = substr($name, 0, strrpos($name, '.'zwinkern);

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm