PHP: Как вывести список файлов в каталог без подкаталогов - PullRequest
12 голосов
/ 07 октября 2011

Это начальная часть моего кода для перечисления файлов в каталоге:

$files = scandir($dir); 
$array = array(); 
foreach($files as $file)
{
    if($file != '.' && $file != '..' && !is_dir($file)){
          ....

Я пытаюсь перечислить все файлы в каталоге без перечисления подпапок.Код работает, но показывает как файлы, так и папки.Я добавил !is_dir($file), как вы видите в моем коде выше, но результаты остались прежними.

Ответы [ 4 ]

20 голосов
/ 07 октября 2011

Так должно быть, я думаю:

$files = scandir($dir); 
foreach($files as $file)
{
    if(is_file($dir.$file)){
      ....
8 голосов
/ 07 октября 2011

Просто используйте is_file.

Пример:

foreach($files as $file)
{
    if( is_file($file) )
    {
       // Something
    }
}
1 голос
/ 26 января 2017

Это будет сканировать файлы, а затем проверить, если.или .. находится в массиве.Затем нажмите файлы, исключая.и .. в новом массиве files [].

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

$scannedFiles = scandir($fullPath);
$files = [];

foreach ($scannedFiles as $file) {
    if (!in_array(trim($file), ['.', '..'])) {
        $files[] = $file;
    }
}
1 голос
/ 27 февраля 2014

Какая боль для чего-то такого, казалось бы, простого!У меня ничего не получалось ... Чтобы получить результат, я предположил, что имя файла имеет расширение, которое должно быть в моем случае.

if ($handle = opendir($opendir)) {
    while (false !== ($entry = readdir($handle))) {
        $pos = strpos( $entry, '.' );
        if ($entry != "." && $entry != ".." && is_numeric($pos)  ) {

............ хорошая запись

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...