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