所以我在一组中有一组20张图像,都标记为狗。所以dog01,dog02,dog03等我正在使用这段代码将它们从目录中拉出来并将它们显示为5行,分为4行。
dog01 dog02 dog03 dog04 dog05
dog06 dog07 dog08 dog09 dog10 (etc.)
我正在使用此代码从目录加载图像,并按顺序加载它们。
<?php
$dirname = "images/";
$images = glob($dirname."dog*.png");
foreach ($images as $i=>$image) {
$title = pathinfo($image);
echo '<img class="deck" src="'.$image.'" alt="'. $title['filename'].'" title="'.$title['filename'].'">';
if(($i+1)%5 == 0) echo '<br />';
}
?>
但是,我想知道是否有办法获得它,以便如果目录中缺少其中一只狗,它会在其位置加载填充,并继续按顺序加载其他狗。因此,如果缺少dog03,它将如下所示:
dog01 dog02 filler dog04 dog05
它会显示填充符,并继续执行序列。我真的不确定我是否可以在PHP中实现这一点。如果有人知道我需要采取什么方法,那将不胜感激。我应该注意到填充图像位于另一个名为“fillers /".
的目录中提前致谢。
答案 0 :(得分:2)
我认为你有两种方法可以解决这个问题。第一个是在php中不担心它,并将填充图像加载为背景图像。通常情况下,图像将加载到填充图像上,但如果图像未加载,则填充图像将保持可见状态。
另一种方法是测试文件是否存在。
作为背景图片:
.deck {
//whatever you had here
background-image: url( "/filler/filler.png" );
}
您可能需要在图像周围创建容器div,然后将css放在其上。请注意,如果没有设置明确的宽度或高度,这将不起作用,因为背景图像不会为其附加的元素指定任何宽度或高度。
事先通过测试:
<?php
$dirname = "images/";
$images = glob($dirname."dog*.png");
foreach ($images as $i=>$image) {
if( file_exists( $image ) ) {
$title = pathinfo($image);
echo '<img class="deck" src="'.$image.'" alt="'. $title['filename'].'" title="'.$title['filename'].'">';
} else {
echo '<img class="deck filler" src="/filler/filler.png" alt="This image does not exist." title="This image does not exist.">';
}
if(($i+1)%5 == 0) echo '<br />';
}
?>
如果您在安全模式下运行php,则此方法可能无效。