Heim > Backend-Entwicklung > PHP-Problem > PHP implementiert Ordnerdurchquerung

PHP implementiert Ordnerdurchquerung

PHPz
Freigeben: 2023-05-29 16:39:39
Original
3217 Leute haben es durchsucht

PHP ist eine sehr beliebte Programmiersprache, mit der sich eine Vielzahl von Operationen implementieren lassen. Unter diesen ist das Durchsuchen von Ordnern und das Erhalten von darin enthaltenen Dateiinformationen ein häufig benötigter Vorgang. In diesem Artikel erkläre ich, wie man die Ordnerdurchquerung in PHP implementiert.

  1. opendir()-Funktion

opendir()-Funktion ist eine Funktion, die von PHP zum Öffnen eines Ordners verwendet wird. Beim Aufruf dieser Funktion müssen Sie den Ordnerpfad als Parameter übergeben. Nachdem der Ordner erfolgreich geöffnet wurde, kann der Inhalt des Ordners über die Funktion readdir() gelesen werden.

Beispielcode:

$dir = './test';  //文件夹路径
$handle = opendir($dir);  //打开文件夹
while ($file = readdir($handle)) {  //循环读取所有文件
    if ($file != "." && $file != "..") {  //排除"."和".."两个特殊的文件夹
        echo $file."<br>";  //输出文件名
    }
}
closedir($handle);  //关闭文件夹
Nach dem Login kopieren

Im obigen Beispielcode habe ich einen Ordner namens „test“ geöffnet und alle Dateinamen im Ordner in einer Schleife gelesen, wobei ich die beiden speziellen Ordner „.“ und „..“ ignoriert habe.

  1. is_dir()-Funktion und rekursiver Durchlauf

Wenn wir alle Unterverzeichnisse und Dateien in einem Verzeichnis durchqueren möchten, können wir die rekursive Methode verwenden. Während des Durchlaufvorgangs müssen wir auch feststellen, ob es sich bei der aktuellen Durchquerung um einen Ordner oder eine Datei handelt. Zur Bestimmung können wir die Funktion is_dir() verwenden.

Beispielcode:

function scanDir($dir){
    if(!is_dir($dir)){
        echo '不是一个有效的文件夹路径';
        return;
    }
    $handle = opendir($dir);  //打开文件夹
    while($file = readdir($handle)){  //循环读取所有文件
        if($file == '.' || $file == '..'){  //忽略掉 ".",".." 特殊文件夹
            continue;
        }
        $path = $dir.'/'.$file;  //当前文件或文件夹的完整路径
        if(is_dir($path)){  //如果是一个文件夹
            echo '<b>'.$file.'</b><br>';  //输出文件夹名称
            scanDir($path);  //递归遍历子文件夹
        }else{  //如果是一个文件
            echo $file.'<br>';  //输出文件名称
        }
    }
    closedir($handle);  //关闭文件夹
}
Nach dem Login kopieren

Im obigen Beispielcode habe ich eine Funktion scanDir() definiert, die einen Ordnerpfad als Parameter akzeptiert. Innerhalb der Funktion stelle ich zunächst fest, ob der eingehende Pfad ein Ordner ist. Wenn es sich nicht um einen Ordner handelt, kehren Sie direkt zurück. scanDir(),该函数接受一个文件夹路径作为参数。在函数内部,我首先判断传入的路径是否为文件夹。如果不是文件夹,则直接返回。

接下来,我打开文件夹,并循环读取其中的文件和文件夹。当遍历到文件夹时,我会输出文件夹名称,并递归调用 scanDir() 函数遍历子文件夹。当遍历到文件时,我只是输出文件名称。

  1. scandir() 函数

PHP 还提供了一个非常简单的函数 scandir(),可以用于一次性获取一个文件夹下的所有文件和文件夹名称。和 opendir() 函数不同的是,该函数返回的是一个数组,数组中包含了所有子文件夹和文件的名称。

示例代码:

$dir = './test';  //文件夹路径
$files = scandir($dir);  //获取文件夹下所有文件和文件夹名称
foreach($files as $file){  //循环遍历
    if($file == '.' || $file == '..'){  //忽略掉 ".",".." 特殊文件夹
        continue;
    }
    echo $file.'<br>';  //输出文件或文件夹名称
}
Nach dem Login kopieren

在上面的示例代码中,我调用了 scandir()

Als nächstes öffne ich den Ordner und lese die darin enthaltenen Dateien und Ordner in einer Schleife. Beim Durchsuchen eines Ordners gebe ich den Ordnernamen aus und rufe rekursiv die Funktion scanDir() auf, um die Unterordner zu durchsuchen. Beim Durchlaufen einer Datei gebe ich einfach den Dateinamen aus.

    scandir()-Funktion

    🎜PHP bietet auch eine sehr einfache Funktion scandir(), mit der alle Dateien in einem Ordner gleichzeitig abgerufen werden können Ordnername. Im Gegensatz zur Funktion opendir() gibt diese Funktion ein Array zurück, das die Namen aller Unterordner und Dateien enthält. 🎜🎜Beispielcode: 🎜rrreee🎜Im obigen Beispielcode habe ich die Funktion scandir() aufgerufen, um alle Datei- und Ordnernamen unter dem Ordner abzurufen, und das Array durchlaufen. Ebenso habe ich die beiden Sonderordner „.“ und „..“ ignoriert und nur die Namen der Ordner und Dateien ausgegeben. 🎜🎜Zusammenfassung🎜🎜In diesem Artikel habe ich vorgestellt, wie man Ordnerdurchquerung mit PHP implementiert, und drei verschiedene Möglichkeiten demonstriert. Mit den Funktionen opendir() und readdir() können wir alle Dateien und Ordner in einem Ordner durchlaufen und entsprechende Vorgänge ausführen, indem wir den Dateityp beurteilen. Durch rekursives Durchlaufen können wir alle Unterverzeichnisse und Dateien in einem Verzeichnis durchlaufen. Über die Funktion scandir() erhalten wir alle Unterordner und Dateinamen unter einem Ordner auf einmal. Wenn Sie Ordner in PHP durchlaufen müssen, hoffe ich, dass dieser Artikel Ihnen eine Referenz liefern kann. 🎜

Das obige ist der detaillierte Inhalt vonPHP implementiert Ordnerdurchquerung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage