Willkommen in der Webstatt Zum Webstatt Blog und Stories
Al3x0r Al3x0r am 14.08.06 01: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, "."),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 ?

netcup.de Warum gibt es hier Werbung?
Sven Sven am 14.08.06 01:50

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

Al3x0r Al3x0r am 14.08.06 01:50

Quote
Original von Sven
Kommt drauf an, ob die Dateiendung gleichbleibend viele Zeichen hat.


Das habe ich in obiger Funktion abgedeckt.

Sven Sven am 14.08.06 02:14

Tja, dein Edit kam paar Sekunden zu spät :P

sili sili am 14.08.06 02: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) . '.'));

Franky Franky am 14.08.06 14:28

echo strrev(substr(strrev($string), 0, strpos(strrev($string), '.'))); :)
($string = dateiname)

sili sili am 14.08.06 17:34

Quote
Original von Franky
echo strrev(substr(strrev($string), 0, strpos(strrev($string), '.'))); :)
($string = dateiname)


Hä? Die Dateiendung bekommt man viel einfacher ;)

Al3x0r Al3x0r am 15.08.06 02:44

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


da schneidet er nur den letzten Buchstaben der Endung ab.

sili sili am 15.08.06 12: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) . '.'));

milahu milahu am 15.08.06 15:05

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

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt