首頁 > 後端開發 > php教程 > 為什麼每次多出來兩個div?

為什麼每次多出來兩個div?

WBOY
發布: 2016-08-18 09:16:06
原創
1420 人瀏覽過

我在外面套了一個div 為什麼又多出來兩個空的div呢 為什麼每次總是多出來兩個空的東西呢?這是哪裡的原因呢?怎麼樣才能去掉呢?
為什麼每次多出來兩個div?

<code>$dir = "upload/"; 
    if (is_dir($dir)){
       if ($dh = opendir($dir)){
         while (($file = readdir($dh))!= false){
            echo '<div>';
            if (!is_dir($file)) {
              $filePath = $dir.$file;
              echo "<img src='".$filePath."'/>";
            }
            echo '</div>';
         }
        closedir($dh);
       }
    }</code>
登入後複製
登入後複製

回覆內容:

我在外面套了一個div 為什麼又多出來兩個空的div呢 為什麼每次總是多出來兩個空的東西呢?這是哪裡的原因呢?怎麼樣才能去掉呢?
為什麼每次多出來兩個div?

<code>$dir = "upload/"; 
    if (is_dir($dir)){
       if ($dh = opendir($dir)){
         while (($file = readdir($dh))!= false){
            echo '<div>';
            if (!is_dir($file)) {
              $filePath = $dir.$file;
              echo "<img src='".$filePath."'/>";
            }
            echo '</div>';
         }
        closedir($dh);
       }
    }</code>
登入後複製
登入後複製

印下

<code>print_r(readdir($dh));</code>
登入後複製

就知道為什麼了。

readdir 會印出 . 和 .. ,所以你的 echo "

"應該放在if !is_dir裡邊

多出來的兩個應該是當前目錄的 . 和上級目錄的 .. 你把這個兩個過濾掉就行

做個if判斷就好了

<code class="php">
$dir = "upload/"; 
if (is_dir($dir)){
   if ($dh = opendir($dir)){
     while (($file = readdir($dh))!= false){
        if (!is_dir($file)) {
        
          //. 和.. 在文件夹下,不管在什么系统中. 和..都是存在的, .指向当前目录, ..上一级目录
          if ($file === '.' || $file === '..') {
              continue;
          }
          
          echo '</div>';
          $filePath = $dir.$file;
          echo "<img src='".$filePath."'/>";
          echo '</div>';
        }
        
     }
    closedir($dh);
   }
}
</code>
登入後複製
相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板