PHP for循环与HTML内部无法正常运行

时间:2015-12-05 18:56:24

标签: html php image

所以,我正在尝试为我正在制作的网站制作幻灯片,但目前还不清楚我将要包含多少图像。检索图像的当前代码包含在下面,但运行时它只显示:

output from code

<?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集成的问题。

1 个答案:

答案 0 :(得分:0)

  

$dir = dirname(__FILE__).'/img';

在此上下文中,$dir是绝对的文件系统路径,而不是URL。因此,当您在$dir元素的src属性中使用img时,将永远无法找到该图像。您可以通过简单地使URL相对来解决此问题(尽管最好使用根相对URL),例如:

<a href="#"><img src="img/<?=$image?>"></a>

您还应该注意,scandir()函数还会返回两个“特殊”目录...,因此需要在{{{}开始时跳过这些目录。 1}}循环。例如:

foreach()

以这种方式在PHP构造中混合输出(通过打入/关闭PHP模式)不是好习惯,因为它限制了可移植性,更难阅读,更难调试等。相反,请考虑分配输出到变量并在脚本末尾回显。