我正在创建一个上传表单,在上传文件时会检查目录中是否已存在同名文件。如果找到具有相同名称的文件,则脚本应通过附加文件名(例如test1.txt test2.txt等)来递增文件,直到找不到匹配项为止。这是我到目前为止所提出的,但我想看看是否应采取不同的方法。
另请注意,我的文件名在进入脚本的这一部分之前已经被清理,因此我的文件名和扩展功能都得到了简化。
function filename($file){
return substr($file,0,strrpos($file,'.'));
}
function extension($file){
return strtolower(substr(strrchr($file,'.'),1));
}
$new_file = 'test.txt';
$dir = 'files';
$files = scandir($dir);
$exclude = array('.','..');
foreach($files as $file){
if(!in_array($file,$exclude)){
$file_array[] = $file;
}
}
$i = 1;
while(in_array($new_file,$file_array)){
$filename = filename($new_file);
$extension = extension($new_file);
if($i>1){
$num = strlen($filename);
$filename = substr($filename,0,-1);
$new_file = $filename.$i.'.'.$extension;
} else {
$new_file = $filename.$i.'.'.$extension;
}
echo $new_file.'<br>';
echo $i.'<br>';
$i++;
}
echo $new_file;