:一致する複数のファイルのfnmatchと拡張子()一般的なファイルのマッチングコードで
while (false !== ($file = readdir($handle))) {
if ($file !== "." && $file !== ".." && fnmatch($mask, $file)) {
$dirList[] = $file;
}
}
私はこのような複数のファイル拡張子パターンを使用しようとしていた。
$mask = "*.{jpg,png,gif}";
を、それはしていません作業。ファイルは一致しません。同じパターンが端末でうまく動作するので、これはむしろ奇妙です。また、glob()で完全にうまく動作し、必要なファイルを返します。マスクとして "* .jpg"を使用すると、fnmatchでも動作するので、コードの残りの部分には何も問題はないことが分かります。 fnmatchがシェルで利用可能な同じパターンをサポートするとは思われませんでしたか?
*(svn)* [file.c](http://svn.php.net/viewvc/php/php-src/trunk/ext/standard/file.c?view=markup) - 誰のためにそれがどのように実装されているかを見たい – Gordon
興味深い。理論的には、libcが_EXTMATCHをサポートしていれば '0x20'を渡すことができます。 – mario
ありがとうございます。あなたが示唆したように、glob()を使用することを選択しました。これは、必要なものをサポートしているからです。 PHPの将来のバージョンでは、FNM_EXTMATCH定数を使ってサポートされるでしょう。 – devius