Heim > Backend-Entwicklung > PHP-Tutorial > Beispiel für die Verwendung der PHP-Funktion scandir() zum Ausschließen bestimmter Verzeichnisse

Beispiel für die Verwendung der PHP-Funktion scandir() zum Ausschließen bestimmter Verzeichnisse

怪我咯
Freigeben: 2023-03-13 12:42:01
Original
2406 Leute haben es durchsucht

scandir() gibt ein Array von Dateien und Verzeichnissen im angegebenen Verzeichnis zurück. Bei Erfolg wird ein Array von Dateien und Verzeichnissen zurückgegeben. Gibt bei einem Fehler FALSE zurück. Wenn das Verzeichnis kein Verzeichnis ist, wird ein Fehler der Stufe E_WARNING ausgegeben.

Syntax

scandir(directory,sorting_order,context);
Nach dem Login kopieren
ParameterBeschreibung
VerzeichnisErforderlich. Gibt die zu scannenden Verzeichnisse an.
sorting_order
参数描述
directory必需。规定要扫描的目录。
sorting_order

可选。规定排列顺序。默认是 0,表示按字母升序排列。

如果设置为 SCANDIR_SORT_DESCENDING 或者 1,则表示按字母降序排列。

如果设置为 SCANDIR_SORT_NONE,则返回未排列的结果。

context可选。规定目录句柄的环境。context 是可修改目录流的行为的一套选项。
Optional. Geben Sie die Sortierreihenfolge an. Der Standardwert ist 0 und gibt eine aufsteigende alphabetische Reihenfolge an.

Wenn auf SCANDIR_SORT_DESCENDING oder 1 gesetzt, wird alphabetisch in absteigender Reihenfolge sortiert.

Wenn auf SCANDIR_SORT_NONE gesetzt, werden unsortierte Ergebnisse zurückgegeben.
<?php
print_r(scandir(&#39;test_directory&#39;));
?>
Nach dem Login kopieren
KontextOptional. Gibt die Umgebung für Verzeichnishandles an. context ist eine Reihe von Optionen, die das Verhalten von Verzeichnis-Streams ändern.

Beispiel:

Der Code lautet wie folgt:
Array
(
[0]=>.
[1]=>..
[2]=>1.txt
[3]=>2.txt
)
Nach dem Login kopieren

Array
(
[0]=>1.txt
[1]=>2.txt
)
Nach dem Login kopieren
Die Ausgabe lautet wie folgt:

In den meisten Fällen benötigen Sie nur das Dateilisten-Array des Verzeichnisses, wie folgt:

<?php
functionfind_all_files($dir)
{
    $root = scandir($dir);
    
foreach
($rootas$value)
    {
        if($value === &#39;.&#39; || $value === &#39;..&#39;){
            
continue
;
        }
        if(is_file("$dir/$value")){
            $result[] = "$dir/$value";
            continue;
        }
        foreach(find_all_files("$dir/$value")as$value)
        {
            $result[] = $value;
            }
        }
    
return
$result;
    }
?>
Nach dem Login kopieren

Dies wird normalerweise durch den Ausschluss von Array-Elementen „.“ oder „..“ gelöst : Der Code lautet wie folgt: Eine andere Methode besteht darin, die Funktion array_diff

<?php
$directory=&#39;/path/to/my/directory&#39;;
$scanned_directory=array_diff(scandir($directory),array(&#39;..&#39;,&#39;.&#39;));
?>
Nach dem Login kopieren

zu verwenden, um das durch Ausführen von erhaltene Array zu entfernen Scandir-Funktion:

Der Code lautet wie folgt:Normalerweise generiert die Codeverwaltung .svn-Dateien oder .htaccess und andere Dateien, die die Verzeichniszugriffsberechtigungen einschränken. Daher ist es bequemer, über die Funktion array_diff zu filtern.

Das obige ist der detaillierte Inhalt vonBeispiel für die Verwendung der PHP-Funktion scandir() zum Ausschließen bestimmter Verzeichnisse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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