2009-11-12 4 views
8

Comment modifier un nom de fichier d'extension de fichier en PHP? Par exemple: $filename='234230923_picture.bmp' et je souhaite que l'extension soit remplacée par jpg.Modifier l'extension du fichier

+0

duplication possible de [Comment extraire une extension de fichier en PHP?] (Http://stackoverflow.com/questions/173868/how-to-extract-a-file-extension-in-php) – trejder

Répondre

9

Il suffit de le remplacer par expression rationnelle:

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

Vous pouvez également étendre ce code pour supprimer d'autres extensions d'image, non seulement bmp:

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

Utilisation d'une regex lente pour une tâche aussi simple? – trejder

3

rename() le fichier, en substituant la nouvelle extension.

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

Rappelez-vous que si le fichier est un fichier bmp, en changeant le suffixe ne changera pas le format :)

+6

+1 pour ne pas abuser de regex. –

3

Ne pas utiliser regex (comme l'exemple basename), mais permettant de multiples possibilités d'extension (comme l'exemple regex):

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

Bien sûr, toute opération remplacer simple, alors que regex alors moins cher, remplacera également un .bmp au milieu du nom du fichier. Comme mentionné précédemment, cela ne va pas changer le format d'un fichier image. Pour ce faire, vous devez utiliser une bibliothèque graphique.

Questions connexes