我有5张名为 1.png,2.png,3.png,4c.png
和& 5.png
我希望在PHP中显示此图像,如this,但它显示为this。
我的代码是: -
<div class="row">
<?php
$images = "/downloads/vf/images/";
for ($i = 1; $i <= 5; $i++):
if (!file_exists($_SERVER['DOCUMENT_ROOT'].$images.$i.".png"))
continue; // Skip this iteration if it can't find the file
?>
<div class="col-md-2">
<div class="thumbnail">
<a href="<?php echo $details . $i;?>.php">
<img src="<?php echo $images;?><?php echo $i;?>.png" alt="<?php echo $i;?>">
</a>
</div>
</div>
<?php endfor; ?>
<?php
$images = "/downloads/vf/images/";
for ($i = 1; $i <= 5; $i++):
if (!file_exists($_SERVER['DOCUMENT_ROOT'].$images.$i."c.png"))
continue; // Skip this iteration if it can't find the file
?>
<div class="col-md-2">
<div class="thumbnail">
<a href="<?php echo $details . $i;?>.php">
<img src="<?php echo $images;?><?php echo $i;?>c.png" alt="<?php echo $i;?>">
</a>
</div>
</div>
<?php endfor; ?>
</div>
可以在if
,elseif
中进行更改。
答案 0 :(得分:2)
替代解决方案:
如果图像名称发生变化,例如添加不同的后缀,那么您将始终遇到问题。&#39; c&#39;。您不必关心图像名称。我们需要关心的是,始终以数字开头。
获取图片名称 - &gt;转换为数组 - &gt;排序 - &gt;输出
试试这个:
<?php
//Put this part to top of your page
$path = "/downloads/vf/images/";
//1. get all imagenames
$images = array_diff(scandir($path), ['.', '..']);
//2. sort numerically, string after the first numerical-char will be ignored
if (count($images) > 0)
sort($images);
}
?>
//3. output
<div class="row">
<?php for($i = 0; $i < count($images); $i++): ?>
<?php if (file_exists($images[$i])): ?>
<div class="col-md-2">
<div class="thumbnail">
<a href="<?php echo $details . $i;?>.php">
<?php echo sprintf("<img src='%s%s' alt='%s'>", $path, $images[$i], $i); ?>
</a>
</div>
</div>
<?php endif; ?>
<?php endfor; ?>
</div>
这适用于以下所有图像名称:
1.png, 2.png, 3.png, 4c.png, 5a.jpg, 6x.png....n
答案 1 :(得分:0)
更改名称&#34; 4c.png&#34; 4.png中的图像或遵循此代码
<?php
$images = "/downloads/vf/images/";
for ($i = 1; $i <= 5; $i++):
if (!file_exists($_SERVER['DOCUMENT_ROOT'].$images.$i."c.png")){
$img = $i."c";
}
else if (!file_exists($_SERVER['DOCUMENT_ROOT'].$images.$i.".png")){
$img = $i;
}
else{
continue; // Skip this iteration if it can't find the file
}
// just for test
echo $images. $img.".png <br>";
?>
<div class="col-md-2">
<div class="thumbnail">
<a href="<?php echo $details . $i;?>.php">
<img src="images/<?php echo $img;?>.png" alt="<?php echo $i;?>">
</a>
</div>
</div>
<?php endfor; ?>
bytheway,我只是让你的代码工作,但有更好的方法来做到这一点
答案 2 :(得分:0)
我认为这对你有用
它将检查文件名是否作为数字存在并回显它,然后查看它是否存在为&#34; c&#34;图像和回声。
我没有添加所有HTML,因为我在手机上输入了这个,但你应该能够看到答案的概念&#34;。
For($i=0;$i<5;$i++){
$imgC = $i . "c";
if (file_exists($_SERVER['DOCUMENT_ROOT'].$images.$i.".png")){
//Echo image
}
if (file_exists($_SERVER['DOCUMENT_ROOT'].$images.$imgC.".png")){
//Echo imageC
}
}