解决this问题之后。
我的代码: -
<?php for ($i = 1; $i <= 9; $i++):?>
<div class="col-md-2">
<div class="thumbnail">
<a href="<?php echo $details . $i;?>.php">
<img src="<?php echo $images . $i;?>.png" alt="<?php echo $i;?>">
</a>
</div>
</div>
<?php endfor; ?>
现在假设现在图像为 8.png ,因此for loop
应该跳过它并转到下一个,而不显示任何图像。
Result is. 我想要this
不应显示红色部分。
答案 0 :(得分:2)
由于您在comments中声明图片的网址为localhost/downloads/vf/images
,我将假设使用$_SERVER['DOCUMENT_ROOT']
来处理公众以外的文件夹(这可能是某些内容)与C:\users\chirag\htdocs\
类似,但$_SERVER
变量应该注意这一点。如果不是这样,请找到完整路径并使用它 - 因为file_exists()
需要系统路径,而不是公共路径/网址。这也假设您使用$images
变量的相对路径,这意味着您有$images = "/downloads/vf/images/";
而不是$images = "localhost/downloads/vf/images/";
。
有了这个假设,我们现在可以使用file_exists()
- 因为它采用系统路径,而不是URL。
<?php
$images = "/downloads/vf/images/";
for ($i = 1; $i <= 9; $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 . $i;?>.png" alt="<?php echo $i;?>">
</a>
</div>
</div>
<?php endfor; ?>
答案 1 :(得分:0)
如果图片存在或不存在,则必须添加检查条件,有某些方法,例如file_exists
<?php for ($i = 1; $i <= 9; $i++):
if(file_exists("file_path")){ ?>
<img src="<?php echo $images . $i;?>.png" alt="<?php echo $i;?>">
<? { php endfor; ?>
这可能会对您有所帮助:How to check if image exists
答案 2 :(得分:0)
使用此代码
File_exists是文件是否存在的功能检查
<?php for ($i = 1; $i <= 9; $i++):
if (file_exists($images.$i.'.png')) { ?>
<img src="<?php echo $images . $i;?>.png" alt="<?php echo $i;?>">
<?php } endfor; ?>
查看此内容以获取更多详细信息
答案 3 :(得分:-1)
您需要使用continue
指令。我还建议您放弃使用:
和endfor
以及所有额外的PHP开始/结束块,以提高可读性和性能。
<?php
for ($i = 1; $i <= 9; $i++) {
if (!is_readable($images . $i . '.png'))
continue;
echo "<img src=\"${images}${i}.png\" alt=\"$i\">";
}
?>
答案 4 :(得分:-1)
如果在任何循环中使用关键字ifbc "$max > $s" && echo "true, it's greater" || echo "no, it's less or ="
,则会跳过此后的其余迭代。
continue
此关键字适用于许多语言。
同样在PHP中,<?php for ($i = 1; $i <= 9; $i++): ?>
<?php if ($i == 8) continue;>
<img src="<?php echo $images . $i;?>.png" alt="<?php echo $i;?>">
<?php endfor; ?>
接受一个数字参数,告诉它应该跳过多少次迭代。