如何使用PHP的glob函数搜索特定的文件类型?

时间:2015-04-09 18:33:43

标签: php database search glob scandir

所以,我尝试使用PHP和glob在我的数据库中搜索.wav声音文件是不行的。

我已将四个声音文件保存到指定的目录中,但是当我尝试使用glob时,我什么都没收到。

ATTEMPT 1:

$files = array();
foreach (glob($authorURL.'/'.$titleURL."*.wav") as $file) {
    $files[] = $file;
    echo $file;
}

ATTEMPT 2:

$dir1 = $authorURL.'/'.$titleURL.'/'.$wordsURL;
$dir = glob("$dir1/*.{wav}");
$files = scandir($dir);
if(!empty($files)) {
    foreach ($files as $file) 
        print " <div class='fileicon'>
                    <audio controls='controls'> 
                        <source src='".$dir.$file."' />  
                    </audio> 
                    <button class='button' disabled>Reply</button>
                    </a>
                </div>";
    } 
else 
{
    echo "There are no annotations for this book"; 
}

任何帮助将不胜感激!我不确定我是否使用了正确的glob格式,但每次搜索时,似乎都有不同的版本({}"")。

1 个答案:

答案 0 :(得分:0)

我认为您使用了错误的glob语法。根据{{​​3}},使用花括号(表示有限的更改)时glob的语法要求您指定一个特殊参数

  

glob还支持与{n1,n2等}的有限交替。你有   将GLOB_BRACE指定为glob的第二个参数以使其成为   工作。例如,如果你执行了glob(&#34; {a,b,c} .php&#34;,GLOB_BRACE)   在以下文件列表中:

     

a.php b.php c.php

尝试执行此操作,或者:

$dir = glob("$dir1/*.{wav}", GLOB_BRACE);

OR

$dir = glob("$dir1/*.wav");