【问题标题】:How do I search for a specific file type using PHP's glob function?如何使用 PHP 的 glob 函数搜索特定的文件类型?
【发布时间】:2015-04-09 18:33:42
【问题描述】:

因此,我尝试使用 PHP 和 glob 在我的数据库中搜索 .wav 声音文件的尝试不起作用。

我已经将四个声音文件保存到指定的目录中,但是当我尝试 glob 时,我什么也得不到。

尝试 1:

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

尝试 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.为什么你在尝试中使用不同的路径? 2.$authorURL,$titleURL,$wordsURL的值是什么?
  • 我也可以看到 &lt;a/&gt; 结束标签,但没有打开它。

标签: php database search glob scandir


【解决方案1】:

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

glob 还支持与 {n1, n2, etc..} 的有限交替。你有 将 GLOB_BRACE 指定为 glob 的第二个参数,以便它 工作。例如,如果您执行 glob("{a,b,c}.php", GLOB_BRACE) 在以下文件列表中:

a.php b.php c.php

尝试像这样执行它,或者:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 2014-10-05
    • 1970-01-01
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多