簡體   English   中英

PHP函數,有一點幫助

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM