Позаботьтесь о том, чтобы glob('*')
работает по-разному на windows и linux (compare with answer). Используйте вместо этого DirectoryIterator
, если вы хотите получить более стабильный код. Кроме того, один provides the needed functions already обрабатывает расширение файла и не будет ломаться - как в этом примере - когда в файле нет точки внутри. И возьмите реальный уход с rename
, используя glob
, возвращает только имя файла, rename
обрабатывает это как полный путь, вы перемещаете файлы в местоположения, которые вы, возможно, не захотите их перемещать.
foreach(new DirectoryIterator('.') as $f) {
/* @var $f splFileInfo*/
if (!$f->isFile()) continue;
($ext = strlen($f->getExtension())) && $ext++;
if (!$ext) continue;
$path = $f->getRealPath();
rename($path, substr($path, 0, -$ext));
}
Позаботьтесь. Вы должны всегда выполнять операции переименования. Каждая операция, связанная с файловой системой и ее изменение, требует большей осторожности, так сказать, только для чтения.
Привет, THX за вашу помощь, я попробовал ваш код, но он не удалял расширение файла. И как я могу удалить расширение файла, когда он не будет известен в следующий раз? – achillix
Привет, Он работает очень хорошо сейчас, я забыл использовать rename ;-) Остается только проблема, как получить или найти имя расширения файла? Есть идеи? THX – achillix
OK Я нашел решение с exec на cmd. THX для справки everybodys. cheers – achillix