我需要有关 PHP 文件操作的帮助。我有 4 个具有已知名称和未知扩展名的文件。像那样:
Y923BBBB.E120506
Y924BBBB.E120606
Y925BBBB.E120706
Y926BBBB.E120806
并且文件扩展名每天都在变化。我如何为每个文件剪切或剥离文件扩展名,以便只保留这样的名称:
Y923BBBB
Y924BBBB
Y925BBBB
Y926BBBB
有人有想法吗?
我需要有关 PHP 文件操作的帮助。我有 4 个具有已知名称和未知扩展名的文件。像那样:
Y923BBBB.E120506
Y924BBBB.E120606
Y925BBBB.E120706
Y926BBBB.E120806
并且文件扩展名每天都在变化。我如何为每个文件剪切或剥离文件扩展名,以便只保留这样的名称:
Y923BBBB
Y924BBBB
Y925BBBB
Y926BBBB
有人有想法吗?
注意glob('*')
在 windows 和 linux 上的工作方式不同(与答案比较)。DirectoryIterator
如果您想要更稳定的代码,请改用。此外,它已经提供了处理文件扩展名所需的功能,并且不会中断 - 如本例所示 - 当文件内部没有点时。并且要真正注意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));
}
小心。您应该始终注意重命名操作。与文件系统相关的每个操作并对其进行更改都需要更加小心,例如只读程序。