[英]PHP for-loop with HTML inside not functioning properly
因此,我正在尝试为正在制作的网站制作幻灯片,但目前尚不清楚要包含多少张图片。 下面包含了用于检索图像的当前代码,但是在运行时,它仅显示:
<?php
$dir = dirname(__FILE__).'/img';
$images = scandir($dir);
if($images)
{
foreach($images as $image)
{?>
<div class="slide active-slide slide-feature">
<div class="container">
<div class="row">
<div class="col-xs-12">
<a href="#"><img src= <?php echo ('"' . $dir . '/' . $image . '"') ?> ></a>
</div>
</div>
</div>
</div>
<?php
}
}
?>
注意:当我手动输入HTML并包含特定的URL时,HTML本身可以正常工作,因此我假设这是HTML和PHP集成的问题。
$dir = dirname(__FILE__).'/img';
在这种情况下, $dir
是绝对文件系统路径,而不是URL。 因此,当您在img
元素的src
属性中使用$dir
时,将永远找不到该图像。 您可以通过简单地使URL相对(尽管最好使用相对于根的URL)来解决此问题,例如:
<a href="#"><img src="img/<?=$image?>"></a>
您还应该注意, scandir()
函数还将返回两个“特殊”目录.
和..
,因此需要在foreach()
循环的开始时跳过这些内容。 例如:
if (in_array($image,array('.','..'))) continue;
以这种方式(通过闯入/退出PHP模式)在PHP结构中混合输出不是一个好习惯,因为它限制了可移植性,更难阅读,更难调试等。相反,请考虑将输出分配给变量并回显此信息在脚本的末尾。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.