2012-06-25 43 views
1

這是我的代碼。PHP文件列表生成的div盒,其中前2個空

一2周的div是空的,無序,如何做正確的格箱與包括PHP文件

<html> 
    <head></head> 
    <body> 
    <?php 
    $dir = 'folder/'; 
    $files = scandir($dir); 
    $count=0; 
    foreach($files as $file){ 
     $count++; 
     echo '<div style="float:left; margin: 0 0 10px 10px;border:1px solid  #50A4AB; width:200px"><br>'; 
     if(strpos($file,".php")){ 
      include($dir.$file); 
     } 
     echo '</div><br>'; 
     if($count==7){echo'<div style="clear:both;"></div><br>';} 
    } 
    ?> 
    </body> 
</html> 
+0

EJP感謝你的努力,其aprreciated。 –

回答

3

的SCANDIR函數返回「」和'..',你必須從結果中排除。這就是爲什麼前兩個div是空的。

你也應該檢查the documentation for the scandir function關於訂單的信息。

您的html格式錯誤,導致StackOverflow代碼高亮顯示中斷,您的縮進不一致。當你尋求幫助時,你應該更加努力使你的例子易於閱讀。

+1

好的,謝謝我在這裏是相當新的,正如你所說不知道如何使用適當的一些功能,我已經問過這個問題,但我沒有得到一個答案,這足夠幫助,所以我選擇了不同的標題,也許它不夠好,我會盡力做下一次更好的;)感謝提示 –

0
  1. 一切@mqsoh說是正確的。 (+1)
  2. 您的代碼存在巨大的安全風險。自動將所有php文件作爲包含加載到文件夾中是非常危險的。您應該只加載已知的命名文件。
  3. 我編輯了你的問題,以便代碼更相關。
  4. 你應該包括if語句的效果:

if ($file != "." && $file !="..") {
// Do stuff here
}

在你的代碼,就像這樣:

foreach($files as $file){ 
    if ($file != "." && $file !="..") { 
     $count++; 
     echo '<div style="float:left; margin: 0 0 10px 10px;border:1px solid  #50A4AB; width:200px"><br>'; 
     if(strpos($file,".php")){ 
      // This is a big security vulnerability 
      include($dir.$file); 
     } 
     echo '</div><br>'; 
     if($count==7){echo'<div style="clear:both;"></div><br>';} 
    } 
} 
+0

cale_b感謝您的支持,它的折扣。 –