Heim >Backend-Entwicklung >PHP-Tutorial >Verwenden Sie die Glob-Methode, um alle Dateien in einem Ordner zu durchlaufen

Verwenden Sie die Glob-Methode, um alle Dateien in einem Ordner zu durchlaufen

WBOY
WBOYOriginal
2016-07-30 13:30:481077Durchsuche

Durchsuchen Sie alle Dateien im Ordner. Im Allgemeinen können Sie zum Durchsuchen die Methoden opendir und readdir verwenden.

Beispiel: Alle PHP-Dateien im angegebenen Verzeichnis finden (Unterordner nicht durchsuchen) , der Code lautet wie folgt:

<code><span><span><?php</span><span>$path</span> = dirname(<span>__FILE__</span>);
<span>$result</span> = traversing(<span>$path</span>);
print_r(<span>$result</span>);

<span><span>function</span><span>traversing</span><span>(<span>$path</span>)</span>{</span><span>$result</span> = <span>array</span>();
    <span>if</span>(<span>$handle</span> = opendir(<span>$path</span>)){
        <span>while</span>(<span>$file</span>=readdir(<span>$handle</span>)){
            <span>if</span>(<span>$file</span>!=<span>'.'</span> && <span>$file</span>!=<span>'..'</span>){
                <span>if</span>(strtolower(substr(<span>$file</span>, -<span>4</span>))==<span>'.php'</span>){
                    array_push(<span>$result</span>, <span>$file</span>);
                }
            }
        }
    }
    <span>return</span><span>$result</span>;
}
<span>?></span></span></code>

Falls verwendetglob-Methode kann den Code durch Durchlaufen von

<code><span><span><?php</span><span>$path</span> = dirname(<span>__FILE__</span>);
<span>$result</span> = glob(<span>$path</span>.<span>'/*.php'</span>);
print_r(<span>$result</span>);
<span>?></span></span></code>

vereinfachen. Beachten Sie, dass glob den Pfad des Pfadsuchergebnisses zurückgibt, z. B. path='/ home/ fdipzone', das obige Beispiel gibt

<code><span>Array</span>
(
    [<span>0</span>] => <span>/home/</span>fdipzone/a.php
    [<span>1</span>] => <span>/home/</span>fdipzone/b.php
    [<span>2</span>] => <span>/home/</span>fdipzone/c.php
)</code>

zurück. Dies unterscheidet sich von den von opendir und readdir zurückgegebenen Ergebnissen.

Wenn Sie nur das aktuelle Verzeichnis durchsuchen. Es kann wie folgt geändert werden: glob('*.php');
Glob-Syntaxbeschreibung:

<code>array <span>glob</span> ( string <span>$pattern</span> [, <span>int</span><span>$flags</span> = <span>0</span> ] )</code>

glob() Die Funktion sucht nach allen Dateipfaden, die mit Muster übereinstimmen, gemäß den Regeln, die von der Funktion libc glob() verwendet werden, ähnlich den Regeln, die von allgemeinen Shells verwendet werden. Es wird keine Abkürzungserweiterung oder Parameterersetzung durchgeführt. Glob ist leistungsstark bei der Verwendung des regulären Pfadabgleichs.

Flags Gültige Flags sind:
GLOB_MARK – Fügen Sie jedem zurückgegebenen Element einen Schrägstrich hinzu.
GLOB_NOSORT – Folgen Sie den Dateien, wie sie im Verzeichnis erscheinen. Gibt die zurück ursprüngliche Reihenfolge (nicht sortiert)
GLOB_NOCHECK – Gibt das Muster zurück, das für die Suche verwendet wird, wenn keine Dateien übereinstimmen
GLOB_NOESCAPE – Backslash-Metazeichen ohne Escapezeichen
GLOB_BRACE – erweitert {a,b,c} so, dass es mit „a“, „b“ oder „c“ übereinstimmt
GLOB_ONLYDIR – gibt nur Verzeichniseinträge zurück, die dem Muster
GLOB_ERR – Fehlerinformationen anhalten und lesen (z. B. nicht lesbares Verzeichnis), standardmäßig alle Fehler ignorieren

Beispiel: Verwenden Sie die Glob-Methode, um den angegebenen Ordner (einschließlich Unterordner) zu durchlaufen

<code><span><span><?php</span><span>$path</span> = dirname(<span>__FILE__</span>);
<span>$result</span> = <span>array</span>();
traversing(<span>$path</span>, <span>$result</span>);
print_r(<span>$result</span>);

<span><span>function</span><span>traversing</span><span>(<span>$path</span>, &<span>$result</span>)</span>{</span><span>$curr</span> = glob(<span>$path</span>.<span>'/*'</span>);
    <span>if</span>(<span>$curr</span>){
        <span>foreach</span>(<span>$curr</span><span>as</span><span>$f</span>){
            <span>if</span>(is_dir(<span>$f</span>)){
                array_push(<span>$result</span>, <span>$f</span>);
                traversing(<span>$f</span>, <span>$result</span>);
            }<span>elseif</span>(strtolower(substr(<span>$f</span>, -<span>4</span>))==<span>'.php'</span>){
                array_push(<span>$result</span>, <span>$f</span>);
            }
        }
    }
}
<span>?></span></span></code>
Copyright-Erklärung: Dieser Artikel ist ein Originalartikel des Bloggers und darf nicht ohne die Erlaubnis des Bloggers reproduziert werden.

Das Obige stellt die Verwendung der Glob-Methode zum Durchsuchen aller Dateien in einem Ordner vor, einschließlich des Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die an PHP-Tutorials interessiert sind.

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