Aktueller Standort: Startseite> Neueste Artikel> Wie kann ich mithilfe der PHP -Glob -Funktion unterschiedliche Dateierweiterungen effizient übereinstimmen?

Wie kann ich mithilfe der PHP -Glob -Funktion unterschiedliche Dateierweiterungen effizient übereinstimmen?

gitbox 2025-08-26
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Beispielcode dieses Artikels,Zeigen, wie man es benutzt PHP von glob Funktionen für die Dateianpassung</span></span><span>
</span><span><span class="hljs-comment">// glob 是一个用于查找符合模式von文件路径von函数,Unterstützen Sie Wildcard -Charaktere</span></span><span>

</span><span><span class="hljs-comment">// 这里是文章内容von前置无关代码示例,Simulieren Sie die Codestruktur in der tatsächlichen Umgebung</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">dummyFunction</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-string">"Dieser Code hat nichts mit dem Thema des Artikels zu tun,Nur zur Demonstration"</span></span><span>;
}
</span><span><span class="hljs-title function_ invoke__">dummyFunction</span></span><span>();

</span><span><span class="hljs-meta">?></span></span><span>

<hr>

<h1>Wie man benutzt PHP glob 函数高效匹配不同von文件扩展名?</h1>

<p>existieren PHP Mitte,<code></span><span><span class="hljs-title function_ invoke__">glob</span></span><span>()

Passen Sie beispielsweise alle .txt -Dateien im aktuellen Verzeichnis an:

 <span class="fun"></span> <span> <span class = "hljs-variable"> $ files </span> </span> <span> = </span> <span> <span class = "hljs-title function_ Invoke __"> Glob </span> </span> </</</span> <span> <span> <span> <span> <span> <;</span>

2. Häufige Wege, um mehrere Erweiterungen zu entsprechen

Methode 1: Verwenden Sie mehrere Glob -Aufrufe, um die Ergebnisse zusammenzuführen

Dies ist die intuitivste Methode, die mehrmals Glob aufruft und dann das Array verschmelzen:

 </span><span><span class="hljs-variable">$extensions</span></span><span> = [</span><span><span class="hljs-string">'jpg'</span></span><span>, </span><span><span class="hljs-string">'png'</span></span><span>, </span><span><span class="hljs-string">'gif'</span></span><span>];
</span><span><span class="hljs-variable">$files</span></span><span> = [];
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$extensions</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$ext</span></span><span>) {
    </span><span><span class="hljs-variable">$files</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_merge</span></span><span>(</span><span><span class="hljs-variable">$files</span></span><span>, </span><span><span class="hljs-title function_ invoke__">glob</span></span><span>(</span><span><span class="hljs-string">"*.<span class="hljs-subst">{$ext}</span></span></span><span>"));
}

Der Nachteil ist, dass das Dateisystem mehrmals gelesen werden muss, was etwas weniger effizient ist.

Methode 2: Verwenden Sie den Curly Brace -Modus (Glob_Brace muss eingeschaltet werden)

PHPs GLOB unterstützt Armband -Erweiterungen ähnlich wie Bash, erfordert jedoch das Flag Globe_Brace :

 </span><span><span class="hljs-variable">$files</span></span><span> = </span><span><span class="hljs-title function_ invoke__">glob</span></span><span>(</span><span><span class="hljs-string">"*.{jpg,png,gif}"</span></span><span>, GLOB_BRACE);

Auf diese Weise können mehrere Erweiterungen mit nur einem Aufruf übereinstimmen, was effizienter ist.

3.. Dinge zu beachten
  • Glob_brace-Kompatibilität: In einigen Systemen (z. B. einige Nicht-GNU-Umgebungen) wird Glob_Brace möglicherweise nicht unterstützt und die Betriebsumgebung muss bestätigt werden.
  • Fallempfindlichkeit: Die Glob -Matching ist standardmäßig Fallempfindlichkeit. Wenn Sie Erweiterungen mit verschiedenen Fällen entsprechen möchten, ist eine zusätzliche Verarbeitung erforderlich, z. B. das Schreiben mehrerer Kombinationen von Erweiterungen.

4.. Kombiniert mit Beispielcode
 </span><span><span class="hljs-comment">// verwenden GLOB_BRACE Passen Sie mehrere Erweiterungen gleichzeitig an</span></span><span>
</span><span><span class="hljs-variable">$files</span></span><span> = </span><span><span class="hljs-title function_ invoke__">glob</span></span><span>(</span><span><span class="hljs-string">"*.{jpg,png,gif}"</span></span><span>, GLOB_BRACE);
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$files</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$file</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Suchen Sie die Datei: "</span></span><span> . </span><span><span class="hljs-variable">$file</span></span><span> . </span><span><span class="hljs-string">"\n"</span></span><span>;
}

Zusammenfassen

Die BLACE -Erweiterung von Glob () mit dem Flag Globe_Brace ist eine einfache Lösung, die mehrere Dateierweiterungen in PHP effizient übereinstimmt. Es wird empfohlen, diese Methode zu bevorzugen, wenn die Kompatibilität dies zulässt. Andernfalls können ähnliche Funktionen erreicht werden, indem Sie mehrmals Glob () aufrufen und die Ergebnisse verschmelzen.

Ich hoffe, dieser Artikel kann Ihnen dabei helfen, PHP -Glob -Funktionen besser zu nutzen, um Dateiübereinstimmungsaufgaben zu verarbeiten!