cuốn sách gpt4 ai đã làm

Đệ quy scandir PHP

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 06:37:49 25 4
mua khóa gpt4 Nike

Tôi muốn tập lệnh của tôi scandir theo cách đệ quy,

$files = scandir('/dir');
foreach($files as $file){
if(is_dir($file)){
echo '
  • ';
    $subfiles = scandir($rooturl.'/'.$file);
    foreach($subfiles as $subfile){
    // vân vân và vân vân và vân vân
    }
    echo '
  • ';
    } khác {
    echo $file.'
    ';
    }
    }
  • Tôi muốn lặp nó theo cách mà với mỗi thư mục mà một scandir tìm thấy, nó sẽ chạy một scandir khác trên các thư mục được tìm thấy trong thư mục đó,

    Vì vậy, thư mục "A" chứa các thư mục 1/2/3, bây giờ nó sẽ là scandir(1), scandir(2), scandir(3), v.v. cho mỗi thư mục được tìm thấy.

    Làm cách nào tôi có thể đạt được điều này một cách dễ dàng mà không cần sao chép đi dán lại mã trong mỗi bài giảng?

    EDIT: Vì câu trả lời gần giống với câu trả lời tôi đã thử nên tôi sẽ cập nhật câu hỏi một chút.

    Sử dụng tập lệnh này, tôi cần tạo danh sách TreeView. Sử dụng tập lệnh hiện đã được xuất bản, get echo sau sẽ xảy ra:

    /images/dir1/file1.png
    /images/dir1/file2.png
    /images/dir1/file3.png
    /images/anotherfile.php
    /data/uploads/avatar.jpg
    /data/config.php
    chỉ mục.php

    Điều tôi thực sự cần là:





      • file1.png

      • file2.png

      • file3.png



    • anotherfile.php







      • avatar.jpg



    • config.php



  • index.php

  • Đợi đã, cảm ơn vì câu trả lời bạn đã đăng!

    câu trả lời hay nhất

    Tôi biết đây là câu hỏi cũ nhưng tôi đã viết một phiên bản thực tế hơn. Thay vì sử dụng trạng thái toàn cục, nó sử dụng các hàm thuần túy để giải quyết vấn đề:

    hàm scanAllDir($dir) {
    $result = [];
    foreach(scandir($dir) as $filename) {
    if ($filename[0] === '.') tiếp tục;
    $filePath = $dir '/' .
    nếu (is_dir($filePath)) {
    foreach (scanAllDir($filePath) as $childFilename) {
    $result[] = $filename . '/' .
    }
    } khác {
    $result[] = $filename;
    }
    }
    trả về kết quả $;
    }

    Về đệ quy scandir PHP, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/55050942/

    25 4 0
    Chứng chỉ ICP Bắc Kinh số 000000
    Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
    Xem sitemap của VNExpress