2009-11-12 17 views
8

Wie ändere ich den Namen einer Dateierweiterung in PHP?Dateierweiterung ändern

Zum Beispiel: $filename='234230923_picture.bmp' und ich möchte die Erweiterung auf jpg ändern.

+0

mögliche Duplikate von [Wie man eine Dateierweiterung in PHP extrahiert?] (Http://stackoverflow.com/questions/173868/how-to-extract-a-file-extension-in-php) – trejder

Antwort

9

einfach ersetzen mit regexp:

$filename = preg_replace('"\.bmp$"', '.jpg', $filename); 

Sie auch verlängern können dieser Code andere Bilderweiterungen zu entfernen, nicht nur bmp:

$filename = preg_replace('"\.(bmp|gif)$"', '.jpg', $filename); 
+0

Verwenden von langsamen Regex für so eine einfache Aufgabe? – trejder

3

rename() die Datei, ersetzen die neue Erweiterung.

24
$newname = basename($filename, ".bmp").".jpg"; 
rename($filename, $newname); 

Denken Sie daran, dass, wenn die Datei eine BMP-Datei ist, wird das Suffix ändert nicht das Format ändern :)

+6

+1 für nicht falsch Regex. –

3

Nicht regex (wie das Beispiel Basisnamen), aber so dass mehrere Erweiterungsmöglichkeiten (wie das Regex Beispiel):

$newname = str_replace(array(".bmp", ".gif"), ".jpg", $filename); 
rename($filename, $newname); 

natürlich kann jede einfache Bedienung ersetzen, während weniger teuer dann regex, wird auch eine .bmp in der Mitte des Dateinamen ersetzen.

Wie bereits erwähnt, ändert dies nicht das Format einer Bilddatei. Um dies zu tun, müssten Sie eine Grafikbibliothek verwenden.