0

PHP で複数の基準を使用してディレクトリを検索する方法を探していましたが、ほとんど運がありませんでした。

同じファイルの複数のバージョンを含むフォルダーがありますが、言語とデバイスは異なります。

例えば

 1. file_en_v980.jar

 2. file_fr_v980.jar

 3. file_en_v990.jar

 4. file_fr_v990.jar

v980 のすべての英語 (en) .jar ファイルのディレクトリを検索できるようにしたいと考えています。

私はこれを試しました:

foreach(glob('./'.$installer_location.'/'.$brand_name.'/*en*.jar') as $filename){
    echo $filename."</br>";
}  

動作しますが、フランス語 (fr) ファイルも返します。

私はこれを試しました:

foreach(glob('./'.$installer_location.'/'.$brand_name.'/*en,v980*.jar') as $filename){
    echo $filename."</br>";
} 

しかし、何も返さないので、構文が間違っていると思います。

どんな助けでも大歓迎です。

添加:

以下のコメントからの提案に基づいて、これを試しました:

foreach(glob('./'.$installer_location.'/'.$brand_name.'/*{en,v980}*.jar',GLOB_BRACE) as $filename){
    echo $filename."</br>";
} 

これにより、en、v980、またはその両方を持つすべてのファイルが返されました。両方を含める必要があると言う方法があるかどうかを把握する必要があります。

4

1 に答える 1

0

PHP の glob() は、基本的に UNIX シェルと同じワイルドカード/マッチング エンジンを使用します。あなたのバージョンでは、 を含むファイルを検索していてen,v980、「代替」として扱われていません。http://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm

試す

glob('..../*{en,v980}*.jar')

代わりに ( に注意してください{})

于 2013-01-09T17:53:32.193 に答える