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

WBOY
Freigeben: 2016-07-30 13:30:48
Original
1038 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren
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.

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