2013-06-21 4 views
3

Я один вопрос, чтение файлов из папки (в данном случае называется «загрузка»):файл - чтение содержимого папки

Это сценарий:

<div id="content"> 

     <?php 
      echo "<h2> These is the list of the files: </h2>"; 

      $dir = dir("upload"); 

      while (($file = $dir->read()) !== false) { 

       echo "<p>File name: " . $file . "</p>"; 
       } 


       $dir->close(); 
      ?> 
</div> 

И это Результат:

These is the list of the files: 

File name: . 

File name: .. 

File name: prova.txt 

File name: prova2.txt 

File name: prova3.txt 

File name: prova4.txt 

Работает, так как считывает содержимое из папки. Но как я могу избежать отображения первых двух строк? Что это за две строки? Почему они отображаются?

+1

'.' => текущая папка; '..' => родительская папка –

+0

' && $ file [0]! = '.'' <- также нет скрытых файлов – Prasanth

ответ

3

Попробуйте это:

while (($file = $dir->read()) !== false) 
{ 
    if($file != '.' && $file != '..') 
    { 
     echo "<p>File name: " . $file . "</p>"; 
    } 
} 
+0

Удивительно! Я просто присоединяюсь к этому сообществу в последнее время, я действительно удивлен, насколько эффективно и быстро! Спасибо, ребята! – johnnyfittizio

2

Добавить условие:

if($file === "." || $file === "..") continue;

0

Попробуйте это:

<?php 

$path = '/your/path'; 
$results = scandir($path); 
foreach ($results as $result) { 
    if ($result === '.' or $result === '..') continue; 

    if (is_dir($path . '/' . $result)) { 
     echo $result; 
    }elseif (is_file($path . '/' . $result)) { 
     echo $result ; 
    } 
} 

?> 

Вы могли бы использовать этот метод, если вы где собираетесь применить один стиль в файл и другой стиль в папку

Смежные вопросы