簡體   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