[英]PHP function, a little help
我需要一个在目录中搜索最多5个文件的函数(该目录中仅MAX 5个文件)。 这些文件几乎具有相同的名称,ID nr以file
1的'_1'
结尾, file 2
'_2'
等。它仅以下划线结尾,然后是file-nr。 例:
filename = id.'_1.jpg'; // File 1.
这是棘手的部分,请仔细阅读:现在,我需要搜索该目录,如果有(例如) a file1, and file3, BUT NO file2, then rename file3 to file2.
换句话说,我需要在名称之间找到“空白”并重命名所有文件,以便它们按顺序排列,而没有“空白”。
再举一个例子,如果dir包含3个以'_1.jpg' and '_3.jpg' and '_4.jpg'
的文件,我希望它重命名文件,使其分别为'_1.jpg' and '_2.jpg' and '_3.jpg'
,它们顺序排列...
正如我所说的,此文件夹中最多包含5个文件。
请帮帮我...用PHP编写函数不是很好...谢谢
PS:如果我不清楚,请告诉我,我将举一些例子。
这不一定是最优雅的解决方案,但它可能会让您入门。
function shuffleFiles($dirPath,$basename, $extension)
{
$MAXFILES = 5;
$originalFilenames = array();
for($i = 1; $i <= $MAXFILES; $i++) // one-based
{
$name = $dirPath . '/' . $basename . '_' . $i . '.' . $extension;
if(file_exists($name))
{
$originalFilenames[] = $name;
}
}
$i = 0;
foreach($originalFilenames as $oldname)
{
$i++;
$newname = $dirPath . '/' . $basename . '_' . $i . '.' . $extension;
rename($oldname, $newname);
}
}
每个目录可处理任意数量的文件
function cleanUpMess($dir, $ext, $delimiter) {
$files = glob($dir.'/*.'.$ext);
$c = 1;
foreach ($files as $file) {
$secondPart = strrchr($file, $delimiter);
$name = explode($secondPart, $file);
$name = $name[0];
$newFile = $name.$delimiter.$i.'.'.$ext;
rename($file, $new);
$c++;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.