我正在尝试使用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?或者还有其他原因导致没有结果?
答案 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>