Nasıl PHP kullanarak bir dosyanın uzantısı değiştirebilirsiniz?
Ex: photo.exe için photo.jpg
Ben küçük harfe bir galeri Withing tüm görüntüleri uzantıları değiştirmek için bu gerekli. Ben aşağıdaki yapıyor sona erdi:
// Converts image file extensions to all lowercase
$currentdir = opendir($gallerydir);
while(false !== ($file = readdir($currentdir))) {
if(strpos($file,'.JPG',1) || strpos($file,'.GIF',1) || strpos($file,'.PNG',1)) {
$srcfile = "$gallerydir/$file";
$filearray = explode(".",$file);
$count = count($filearray);
$pos = $count - 1;
$filearray[$pos] = strtolower($filearray[$pos]);
$file = implode(".",$filearray);
$dstfile = "$gallerydir/$file";
rename($srcfile,$dstfile);
}
}
Bu benim amaçlar için çalıştı.
Modern işletim sistemlerinde, dosya adları çok iyi, örneğin, uzun dosya uzantısından önce dönemleri içerebilir:
my.file.name.jpg
PHP, bunu dikkate alır sonra sadece yeni uzantısı eklemek uzantısı olmadan dosya adını bulmak için bir yol sağlar:
function replace_extension($filename, $new_extension) {
$info = pathinfo($filename);
return $info['filename'] . '.' . $new_extension;
}
Eğer bir dize dosya var, ilk seçtiğiniz bir uzantısı ile uzantısını değiştirmek için regex kullanabilirsiniz. İşte o yapacağım küçük bir fonksiyonu var:
function replace_extension($filename, $new_extension) {
return preg_replace('/\..+$/', '.' . $new_extension, $filename);
}
Sonra yeni dosya adı ile dosyayı yeniden adlandırmak için rename() işlevini kullanın.