显示文件夹中的所有图像,而不测试文件是否存在

时间:2012-03-27 04:22:30

标签: php image

使用以下代码,我最多可以显示10张图像。我想要的是能够显示文件夹中的所有图像,而无需经过无限循环,也无需测试每个循环中是否存在图像文件。

for($i=1; $i<=10; $i++)
{
 $filename = "/folder/$i.jpg";
 echo "
  <img title='$i' src='$filename'>
 ";
}

假设我不知道文件夹中有多少图像,并且我不想将这些信息存储在数据库中,那么如何显示所有带有文件名的图像都是以{{结尾的整数1}}扩展名?

2 个答案:

答案 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");

UPDATE 参考:http://php.net/manual/en/function.glob.php