Willkommen in der Webstatt
User-1 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?
User-2 am 14.08.06 01:50

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

User-1 am 14.08.06 01:50

Quote
Original von xyz-207
Kommt drauf an, ob die Dateiendung gleichbleibend viele Zeichen hat.


Das habe ich in obiger Funktion abgedeckt.

User-2 am 14.08.06 02:14

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

User-3 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) . '.'));

User-4 am 14.08.06 14:28

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

User-3 am 14.08.06 17:34

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


Hä? Die Dateiendung bekommt man viel einfacher ;)

User-1 am 15.08.06 02:44

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


da schneidet er nur den letzten Buchstaben der Endung ab.

User-3 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) . '.'));

User-5 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