显示文件夹中的所有图像而不测试文件存在
使用以下代码,我最多可以显示10张图像。我想要的是能够显示文件夹中的所有图像,而不会经历无限循环,并且无需测试每个循环中是否存在图像文件。显示文件夹中的所有图像而不测试文件存在
for($i=1; $i<=10; $i++)
{
$filename = "/folder/$i.jpg";
echo "
<img title='$i' src='$filename'>
";
}
假设我不知道有多少的图像出现在文件夹中,而我不想在数据库中存储这些信息,你会怎么显示所有的文件名是结束整数图像扩展名为.jpg
?
//path to directory to scan
$directory = "/folder/";
//get all image files with a .jpg extension.
$images = glob($directory . "*.jpg");
为什么不链接到[官方文档](http://php.net/glob),而不是一些未知的网站? – zerkms 2012-03-27 04:27:42
谢谢,引用改变了。 – 2012-03-27 04:31:47
看起来可行。谢谢! – 2012-03-27 04:34:07
我会用RecursiveDirectoryIterator http://au.php.net/manual/en/class.recursivedirectoryiterator.php 如果使用使用水珠,你将不得不手动处理递归。
$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
从链接,这是如何工作不是很清楚。你能用一个例子来扩展你的答案吗?谢谢。这种方式比'glob()'函数更好吗? – 2012-03-27 05:01:54
我已经在我的回答 – 2012-03-27 10:49:26
中看到了一个例子。为你+1。如果我正在搜索隐藏在多个文件夹中的文件,此功能将派上用场。截至目前,Glob()似乎已经足够满足我的要求。无论如何,谢谢你向我展示替代品:) – 2012-03-28 07:33:55
使用'水珠()',卢克。 – zerkms 2012-03-27 04:25:41
我会使用RecursiveDirectoryIterator http://au.php.net/manual/en/class.recursivedireiteiteite.php – 2012-03-27 04:38:00
@ b.b3rn4rd,你可以放下来作为答案? – 2012-03-27 04:43:45