在我的目录中
green.txt
black.txt
shadow.txt
和我的php代码
<?php
$key = "black+shadow"
$dir = 'file/dir';
$ext = '.txt';
$i=0;
$search = $key;
$results = glob("$dir/*$search*$ext");
if(count($results) != 1) {
foreach($results as $item) {
echo $item;
}
}?>
我想获取输出“ black.txt”和“ shadow.txt”
答案 0 :(得分:1)
$key = "black+shadow";
$dir = "file/dir"
$ext = '.txt';
foreach (explode("+", $key) as $filePart) {
$fileName = $filePart . $ext;
if (file_exists("{$dir}/{$fileName}")) {
echo $fileName . '<br>';
}
}
这假定模式将始终由+
如果最终得到更复杂的解决方案,则可以使用glob
-但这可能是理解恕我直言的最快,最简单的方法。
答案 1 :(得分:1)
<?php
$key = "{black,shadow}";
$ext = '.txt';
$i=0;
$search = $key;
$results = glob("$search*$ext",GLOB_BRACE);
if(count($results) != 1) {
foreach($results as $item) {
echo $item;
}
}?>
按照手册
GLOB_BRACE - Expands {a,b,c} to match 'a', 'b', or 'c'
我在您的搜索词周围添加了花括号,并添加了GLOB_BRACE标志。 (目录在我进行本地测试时已删除)