[英]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.