<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// この記事の例のコード,それを使用する方法を示します PHP の glob ファイルマッチングの機能</span></span><span>
</span><span><span class="hljs-comment">// glob 是一个用于查找符合模式の文件路径の函数,ワイルドカード文字をサポートします</span></span><span>
</span><span><span class="hljs-comment">// 这里是文章内容の前置无关代码示例,実際の環境のコード構造をシミュレートします</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">"このコードは、記事のトピックとは何の関係もありません,デモンストレーションのみ"</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>使い方 PHP glob 函数高效匹配不同の文件扩展名?</h1>
<p>存在する PHP 真ん中,<code></span><span><span class="hljs-title function_ invoke__">glob</span></span><span>()
たとえば、現在のディレクトリ内のすべての.txtファイルを一致させます。
<span class="fun"></span> <span> <span class = "hljs-variable"> $ files </span> </span> <span> = </span> <span> <span class = "hljs-title function_ invoke __"> blov> </span> <span>(</span> <span> <span = "hljs-string"> </</</</</<</span>
これは最も直感的な方法であり、それぞれ複数回グローブを呼び出してから、配列をマージします。
</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>"));
}
欠点は、ファイルシステムを複数回読み取る必要があることです。これはわずかに効率が低いことです。
PHPのGlobは、Bashと同様のブレスレット拡張機能をサポートしていますが、 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);
このようにして、複数の拡張機能を1回の呼び出しと一致させることができますが、これはより効率的です。
</span><span><span class="hljs-comment">// 使用 GLOB_BRACE 複数の拡張機能を一度に一致させます</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">"ファイルを見つけます: "</span></span><span> . </span><span><span class="hljs-variable">$file</span></span><span> . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
Glob_Braceフラグを使用してGlob()のブレース拡張機能を使用することは、PHPの複数のファイル拡張機能を効率的に一致させる簡単なソリューションです。互換性が許可されている場合は、この方法を推奨することをお勧めします。それ以外の場合、 GLOW()を複数回呼び出して結果をマージすることにより、同様の機能を実現できます。
この記事が、PHPグローブ機能をよりよく利用して、ファイルマッチングタスクを処理するのに役立つことを願っています。