[英]PHP foreach loop for all images in a HTML 3 table column
嗨,我是PHP和此站点的新手,所以请保持友好:)
我目前在处理下面的PHP foreach代码时遇到麻烦,因为我试图回显HTML表3列中的所有图像,但它仅回显2。
更新:感谢评论员的帮助,我设法解决了一些问题。 但是,我现在遇到另一个令人困惑的问题。
基本上,如果我在文件夹中有一张图片,它将回显该张图片,但是如果我在其中放置两张图片,则回显为4,第一个图片为2,第二个也为2。 即使我在该文件夹中有2张图像,也基本上显示4张图像。 我似乎无法解决此问题。
这是代码:
<?php
// get images
$images = glob($imagedir.'/' . "*.png");
$i = 0;
echo'<table><tr>';
foreach($images as $image)
{
$i++;
echo '<td><img src="'.$image.'" height="200"></td>';
if($i == 3)
{
echo '</tr><tr>';
$i = 0;
}
}
echo '</tr></table>';
?>
提前致谢
您是用来渲染HTML的代码。 如果重复,则imagedir的内容一定是错误的。
几点评论:
glob($imagedir.'/' . "*.png");
还包括名称以.png
结尾的目录。 ?>
。 我已经更改了您的代码,以避免上述问题。 我敢肯定还有更多/其他方法可以做到这一点,但是首先要想到这一点。
<?php
$imagedir = 'images';
//Get *.png files only
$images = array_filter(glob("$imagedir/*.png"), 'is_file');
//Make image array divisble by 3 (columns)
while (count($images) % 3 != 0) {
$images[] = '';
}
echo'<table><tr>';
for ($i = 1; $i <= count($images); $i++) {
//Render TD if $image is not empty
if ($images[$i-1] != '' != '') {
echo '<td><img src="' . $images[$i-1] . '">', "<br>Image $i</td>";
}
//Close table row after 3 TD's
if($i % 3 == 0)
{
echo '</tr><tr>';
}
}
echo '</tr></table>';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.