我的/images/
目录中有一组相关的图像,按顺序命名为image1.jpg,image2.jpg,image3.jpg等...
我正在尝试使用循环使用PHP在我的标记中输出图像。但是由于图像数量不同,我需要它在到达目录中的最后一个图像文件时停止。
假设我有5张图片,我希望它只输出:
<img src="images/image1.jpg">
<img src="images/image2.jpg">
<img src="images/image3.jpg">
<img src="images/image4.jpg">
<img src="images/image5.jpg">
如果我将image6.jpg
添加到目录中,它应该自动添加到标记中。你是怎么做到的?
我当前的方法
for ( $i=1; $i<100; $i++ ) {
if ( file_exists('http://localhost/images/image' . $i . '.jpg') ) {
echo '<img src="http://localhost/images/image' . $i . '.jpg'">';
}
}
答案 0 :(得分:3)
scandir
怎么办?
$dir = '/images';
$imgs = scandir($dir);
foreach($imgs as $img)
{
if($img != '.' && $img != '..')
{
echo '<img src="http://localhost/images/'.$img.'">';
}
}
答案 1 :(得分:3)
此代码段将生成所需的结果:
$i = 1;
while(file_exists('./images/image' . $i . '.jpg')){
echo '<img src="images/image' . $i . '.jpg">';
$i++;
}
答案 2 :(得分:2)
对于这样的场合,有一个名为file_exists()
的函数。
答案 3 :(得分:1)
回答你的问题:
for ( $i=1; $i<100; $i++ ) {
if ( file_exists('http://localhost/images/image' . $i . '.jpg') ) {
echo '<img src="http://localhost/images/image' . $i . '.jpg">';
} else {
break;
}
}
但是你的例子中有一个额外的单引号,所以它将输出:
<img src="images/image1.jpg'">
<img src="images/image2.jpg'">
<img src="images/image3.jpg'">
<img src="images/image4.jpg'">
<img src="images/image5.jpg'">