【发布时间】:2013-01-09 17:35:42
【问题描述】:
我一直在尝试找到一种方法来在 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 或两者的文件。我只需要弄清楚是否有办法说必须同时包含两者。
【问题讨论】:
-
为什么是
en,v980而不是en_v980? -
我认为 ',' 会分隔 'en_v980' 搜索匹配字符串的条件。实际文件名比我在示例中使用的要大得多。