2016-02-05 58 views
-1

我需要幫助才能將我的所有圖片以內聯方式顯示在我的文件夾中,而不是相互之間。我該如何讓PHP以內聯方式顯示圖片

<?php 

$files = glob("bilder/*.*"); 

for ($i=1; $i<count($files); $i++)  
{ 

    $image = $files[$i]; 
    $supported_file = array(
          'gif', 
          'jpg', 
          'jpeg', 
          'png' 
          ); 

    $ext = strtolower(pathinfo($image, PATHINFO_EXTENSION)); 
    if (in_array($ext, $supported_file)) { 
     echo '<img src="'.$image .'" width="400" height="500" />'."<br /><br />"; 
    } else { 
     continue; 
    } 
} 
?> 
+2

刪除'
'add'style =「display:inline-block;」' –

+4

PHP does not do this。它的所有HTML/CSS – CodeGodie

+1

你爲什麼要在你的HTML中添加'
'標籤? – CodeGodie

回答

0

您應該使用css類和樣式。

echo '<img src="'.$image .'" class="someClass" />'; 

然後包括你的樣式表在HTML頭

<link rel="stylesheet" href="stylesheet.css"> 

終於風格你的圖片在stylesheet.css中

.someClass{ 
    display: inline-block; 
    padding: 3px; 
} 

所有這些是最基本的HTML和CSS的東西。在提問之前請考慮閱讀一些教程。

+0

我已經這樣做了,那對我沒有用。 – spero

+0

@spero然後你沒有做對或者沒有把它看得足夠。如果你願意,你可以上傳您的文件引擎收錄,我會看看 – Barthy

+0

PHP代碼:http://pastebin.com/hJWFxGvV 和 CSS代碼:http://pastebin.com/MnuZMN9A – spero

1

沒有任何其他HTML,默認情況下圖像顯示爲內嵌。但是,您添加了"<br /><br />"的中斷,可以使此行爲無效,並使圖像換成一列。

所以只要刪除這些休息。如果您擔心要自行換行HTML代碼,請改爲插入換行符(\n)。

我藉此機會突出你的PHP代碼某些方面可以改進:

  • 沒有做continue;時是循環的最後一條語句沒有用。你可以把這個else擋住;
  • PHP有一個很好的循環數組構造,即foreach。它使代碼更緊湊,同時提高了可讀性。
  • 您將變量$ supported_file初始化爲循環的每次迭代中的相同值:這應該發生在循環之外;
  • 要過濾文件名的數組,您可以使用preg_grep;
  • 由於HTML支持單引號作爲值分隔符,並且PHP將雙引號擴展變量名,所以通過切換使用雙/單引號可以(在我看來)更好的代碼。

該清理結果在此代碼:適用於圖像widthheight

$files = preg_grep('/^.*\.gif|jpg|jpeg|png$/i', glob("bilder/*.*")); 
foreach ($files as $image) { 
    echo "<img src='$image' width='400' height='500'/>\n"; 
} 

關於HTML屬性:

這確實是值得避免。您應該使用這些圖像的適當尺寸,因爲通過在圖像上加上尺寸可能會使圖像變得醜陋。如果它們是你的圖像,那麼使這些圖像具有合適的尺寸。我已將這些屬性保留在上述代碼中,但請重新考慮您如何處理圖像大小。

我也注意到一個問題,在你pastebin.com共享的HTML:

  • titlemeta標籤應在head標籤移動,他們不應該出現的html標記的直接子。
  • 還請注意,您有通過body標記加載的背景圖像。我希望你們不要誤解,因爲那個圖像肯定會和你製作的其他img標籤重疊。
相關問題