Heim  >  Artikel  >  Backend-Entwicklung  >  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

怪我咯
怪我咯Original
2017-07-10 16:03:182377Durchsuche

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);
Parameter Beschreibung
Verzeichnis Erforderlich. 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;));
?>
Kontext Optional. 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
)

Array
(
[0]=>1.txt
[1]=>2.txt
)
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;
    }
?>

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;));
?>

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!

Stellungnahme:
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