繁体   English   中英

内有HTML的PHP​​ for循环无法正常运行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM