首頁  >  問答  >  主體

PHP:如何將子資料夾中的所有映像複製到單一資料夾中(無需建立子資料夾!)

為了我妻子的生日聚會,我建立了一個網站,透過網站我收集聚會客人的圖像,然後製作一本好書作為紀念品。客人有一個帳戶,並將圖像上傳到「他們的」資料夾。我現在有一個工具可以從圖片動態建立幻燈片 - 但不幸的是它無法遍歷子資料夾。 因此,我的主要目標是將圖像檔案複製到一個指定的資料夾,幻燈片可以從該資料夾中獲取它。然後,我會每 5 分鐘左右運行一次 PHP 腳本作為 cron,並在聚會期間在螢幕上顯示圖像。

我已經找到了一堆程式碼片段,它們都做同樣的事情: 它們將所有檔案和資料夾遞歸複製到定義的目的地。 例如。這個(取自這裡:https://code-boxx.com/copy-folder-php/):

<?php
// (A) COPY ENTIRE FOLDER
function copyfolder ($from, $to, $ext="*") {
  // (A1) SOURCE FOLDER CHECK
  if (!is_dir($from)) { exit("$from does not exist"); }
 
  // (A2) CREATE DESTINATION FOLDER
  if (!is_dir($to)) {
    if (!mkdir($to)) { exit("Failed to create $to"); };
    echo "$to created\r\n";
  }
 
  // (A3) GET ALL FILES + FOLDERS IN SOURCE
  $all = glob("$from$ext", GLOB_MARK);
  print_r($all);
 
  // (A4) COPY FILES + RECURSIVE INTERNAL FOLDERS
  if (count($all)>0) { foreach ($all as $a) {
    $ff = basename($a); // CURRENT FILE/FOLDER
    if (is_dir($a)) {
      copyfolder("$from$ff/", "$to$ff/");
    } else {
      if (!copy($a, "$to$ff")) { exit("Error copying $a to $to$ff"); }
      echo "$a copied to $to$ff\r\n";
    }
  }}
}
 
// (B) GO!
copyfolder("C:/SOURCE/", "C:/TARGET/");
?>

這工作得很好,但事實是它不是我所需要的。該腳本正在複製檔案和資料夾,並將這些檔案放入它們所在的相同子資料夾中。我的問題是我不想創建子資料夾。我只想讓腳本遍歷所有子資料夾並將找到的圖像檔案複製到一個資料夾中。 我認為這對新手來說應該是一件容易的事情,但似乎我錯了。

任何人都可以幫助我實現這一目標嗎?謝謝!

P粉877114798P粉877114798288 天前365

全部回覆(1)我來回復

  • P粉083785014

    P粉0837850142024-01-30 00:50:02

    IT 高盛是對的 - 將 $to 排除在外;我甚至完全刪除了 $to 變數並將我的路徑放在複製參數中:

    0) { foreach ($all as $a) {
        $ff = basename($a); // CURRENT FILE/FOLDER
        if (is_dir($a)) {
          copyfolder("$from$ff/");
        } else {
          if (!copy($a, "C:/TARGET/$ff")) { exit("Error copying $a to C:/TARGET/$ff"); }
          echo "$a copied to C:/TARGET/$ff\r\n";
        }
      }}
    }
     
    // (B) GO!
    copyfolder("C:/SOURCE/");
    ?>

    回覆
    0
  • 取消回覆