Просмотр полной версии : регулярное выражение для замены всего имени файла, кроме его расширения
как?
написал вот это:
$filename = $_FILES["Filedata"]["name"];
$newfilename = preg_replace("/[^.(?:jp(?:e?g|e|2)|gif|png|tiff?|bmp|ico)]/", "", $filename);
но в имени файла остаются и буквы расширения.
эм. я не совсем конечно понимаю, что вы хотите сделать изменением расширения,
НО так не проще?
$newfilename = preg_replace('/.(jpeg|jpg|gif|png|tiff|bmp|ico)/', '', $filename); ну или как вариант $newfilename = preg_replace('/.(jpeg|jpg|gif|png|tiff|bmp|ico){1,4}/', '', $filename);
вы меня не так поняли. мне надо изменить/заменить имя файла КРОМЕ его расширения. т.е. расширение оставить, а все буквы в имени файла заменить.
мне это нужно для шаблонного именования загружаемых файлов. возможно, есть другой способ, наверняка этот вопрос уже решили. просто я ноль в PHP. но есть желание научиться.
ну проще наверно вытащить $_FILES['uploadfile']['type'] - MIME-тип принятого файла (если браузер смог его определить).
Ну как-то так
$filename = $_FILES['Filedata']['type'];
$newfilename = preg_replace('/image\//', '', $filename);
$newfilename = time().".".$newfilename;
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.