Position actuelle: Accueil> Derniers articles> Comment correspondre efficacement à différentes extensions de fichiers à l'aide de la fonction PHP Glob?

Comment correspondre efficacement à différentes extensions de fichiers à l'aide de la fonction PHP Glob?

gitbox 2025-08-26
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Exemple de code de cet article,Démontrer comment l&#39;utiliser PHP de glob Fonctions pour la correspondance des fichiers</span></span><span>
</span><span><span class="hljs-comment">// glob 是一个用于查找符合模式de文件路径de函数,Soutenir les personnages génériques</span></span><span>

</span><span><span class="hljs-comment">// 这里是文章内容de前置无关代码示例,Simuler la structure du code dans l&#39;environnement réel</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">"Ce code n&#39;a rien à voir avec le sujet de l&#39;article,Pour la démonstration seulement"</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>Comment utiliser PHP glob 函数高效匹配不同de文件扩展名?</h1>

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

Par exemple, faites correspondre tous les fichiers .txt dans le répertoire actuel:

 <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> <pan> <span class = "hljs-string"> "*.</span>

2. Façons courantes pour correspondre à plusieurs extensions

Méthode 1: Utilisez plusieurs appels globaux pour fusionner les résultats

Il s'agit de la méthode la plus intuitive, appelant GLOB plusieurs fois respectivement, puis fusionnant le tableau:

 </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>"));
}

L'inconvénient est que le système de fichiers doit être lu plusieurs fois, ce qui est légèrement moins efficace.

Méthode 2: Utilisez le mode Brace Brace (Glob_brace doit être activé)

Le glob de PHP prend en charge les extensions de bracelet similaires à Bash, mais nécessite le drapeau glob_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);

De cette façon, plusieurs extensions peuvent être adaptées à un seul appel, ce qui est plus efficace.

3. Choses à noter
  • Compatibilité glob_brace: dans certains systèmes (comme certains environnements non-GNU), Glob_brace peut ne pas être pris en charge et l'environnement de fonctionnement doit être confirmé.
  • Sensibilité à la casse: la correspondance du globe est sensible à la casse par défaut. Si vous souhaitez faire correspondre les extensions avec divers cas, un traitement supplémentaire est nécessaire, comme la rédaction de plusieurs combinaisons d'extensions.

4. Combiné avec un exemple de code
 </span><span><span class="hljs-comment">// utiliser GLOB_BRACE Faire correspondre plusieurs extensions à la fois</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">"Trouver le fichier: "</span></span><span> . </span><span><span class="hljs-variable">$file</span></span><span> . </span><span><span class="hljs-string">"\n"</span></span><span>;
}

Résumer

L'utilisation de l'extension de l'attelle de glob () avec l'indicateur glob_brace est une solution simple pour correspondre efficacement à plusieurs extensions de fichiers en php. Cette méthode est recommandée pour être préférée si la compatibilité le permet. Sinon, des fonctions similaires peuvent être obtenues en appelant Glob () plusieurs fois et en fusionnant les résultats.

J'espère que cet article peut vous aider à mieux utiliser les fonctions PHP Glob pour gérer les tâches de correspondance des fichiers!