2009-11-12 30 views
8

PHPでファイル拡張子名を変更するにはどうすればよいですか?ファイルの拡張子を変更する

たとえば、$filename='234230923_picture.bmp'となります。拡張子をjpgに変更します。

+0

[PHPでファイル拡張子を抽出するにはどうすればいいですか?](http://stackoverflow.com/questions/173868/how-to-extract-a-file-extension-in-php) – trejder

答えて

9

ただ、正規表現に置き換える:あなたはまた、拡張することができ

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

を他の画像の拡張子だけでなく、bmpを削除するには、このコード:

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

低速正規表現を使用するそのような単純な仕事のために? – trejder

3

rename()新しい拡張子でファイルを置換します。

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

サフィックスがフォーマットを変更しません変更し、ファイルはBMPファイルである場合があることに注意してください:)

+6

+1正規表現を誤用しないようにします。 –

3

(ベース名の例のように)正規表現を使用しますが、(正規表現の例のように)複数の拡張可能性を許可していません。

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

もちろん、単純な置き換え操作は、正規表現よりも安価ですが、ファイル名の途中で.bmpを置き換えます。

前述のとおり、これは画像ファイルの形式を変更することはありません。これを行うには、グラフィックライブラリを使用する必要があります。

関連する問題