使用以下代码,我最多可以显示10张图像。我想要的是能够显示文件夹中的所有图像,而无需经过无限循环,也无需测试每个循环中是否存在图像文件。
for($i=1; $i<=10; $i++)
{
$filename = "/folder/$i.jpg";
echo "
<img title='$i' src='$filename'>
";
}
假设我不知道文件夹中有多少图像,并且我不想将这些信息存储在数据库中,那么如何显示所有带有文件名的图像都是以{{结尾的整数1}}扩展名?
答案 0 :(得分:4)
我会使用RecursiveDirectoryIterator http://au.php.net/manual/en/class.recursivedirectoryiterator.php 如果使用使用glob,则必须手动处理递归。
$path = '/path/to/folder';
/* @var $file SplFileInfo */
foreach (new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($path)) as $file) {
if ($file->isFile()
&& in_array(strtolower($file->getExtension()), array('jpg', 'png', 'gif'))) {
echo $file->getPathname()."\n";
}
}
请注意:SplFileInfo :: getExtension可从PHP 5.3.6获得
答案 1 :(得分:2)
//path to directory to scan
$directory = "/folder/";
//get all image files with a .jpg extension.
$images = glob($directory . "*.jpg");