Glob没有给我任何结果

时间:2011-08-09 14:34:50

标签: php

我正在尝试使用PHP的Glob来获取基于通配符的文件列表,即扩展名。

$images = glob('/content/big/'.$item['id'].'.{jpg,jpeg,png,gif}', GLOB_BRACE);

我知道这个目录中有一个文件,即:23.png但它没有显示在数组$ images中。我不知道为什么不。我已经尝试使URL更加绝对(或明确),如:

$images = glob('http://www.website.com/content/big/'.$item['id'].'.{jpg,jpeg,png,gif}', GLOB_BRACE);

没有结果。

可能是因为在PHP中没有正确安装Glob?或者还有其他原因导致没有结果?

2 个答案:

答案 0 :(得分:12)

glob仅适用于服务器文件系统上的路径,而不适用于URL。

http://www.website.com/content/big/在服务器上可能真的是/var/www/site/content/big,这是您需要使用的路径。

使用/查找路径会在您的根目录中查找该文件夹,并假设您的服务器上没有名为/content/big/的文件夹。

尝试这样(使用服务器根目录的相对路径):

$images = glob('content/big/'.$item['id'].'.{jpg,jpeg,png,gif}', GLOB_BRACE);

或使用绝对路径:

$images = glob('/var/www/site/content/big/'.$item['id'].'.{jpg,jpeg,png,gif}', GLOB_BRACE);

答案 1 :(得分:1)

下面是我的实现,单引号不适用于echo,但这适用于我。希望它有所帮助!

            <ul>
                    <?php
                            foreach(glob('audio/*.mp3') as $audio){ echo "<li><a>$audio</a></li>";}
                    ?>
            </ul>