Moin!
Ich versuche, bei eingelesenen Dateinamen die Endung auf .jpg zu ändern. Dazu habe ich einen regulären Ausdruck geschrieben :
$name = preg_replace ("/(.*[.]).{3}/", "\1jpg", $name);
Dieser tut jedoch nicht, was er soll, sondern schneidet die Endung samt Punkt ab. (?)
Ich frage mich, welcher Hintergedanke bei deiner Aktion dabei ist. Einfach nur die Dateiendung verändern ändert nicht das Dateiformat. Aber den Mime-Typ. Welcher vom Internet Explorer meist mißachtet wird, so daß dennoch der wahre Dateiinhalt aktiv wird.
Also: Wozu die Dateiendung ändern? Mir fällt da eigentlich nur eine Möglichkeit ein: Der Benutzer kann einen Dateinamen für eine zu erstellende Grafikdatei eingeben, und es soll verhindert werden, daß er .jpg vergißt anzuhängen, oder .gif, .txt oder .exe draus macht.
Je nach Anwendungsfall ist der mögliche Input des regulären Ausdrucks durchaus unterschiedlich, und ich würde auch sagen, daß sich der reguläre Ausdruck selbst unterscheiden kann. Oder es sich eine ganz andere Lösung anbietet.
- Sven Rautenberg