Как сканировать каталог и все подкаталоги на наличие определенных файлов (с расширением .php) - PullRequest
1 голос
/ 15 мая 2019

У меня есть структура папок, подобная этой:

Examplefolder
|---Folder1
|       |--- file1.php
|---Folder2
|       |---Subfolder
|              |--- subfile1.php
|              |--- subfile2.html
|---Folder3
|---file2.php

Как видите, examplefolder - это основная папка.Он может содержать обычные расширения файлов php или oder.Внутри основной папки есть также подпапки (например, folder1 и folder2).Внутри подпапок может быть больше папок.

Теперь я хочу просканировать папку примеров на наличие файлов с расширением .php, которые должны быть сохранены в массив.Как это будет работать?Я также попробовал метод, который показывает все файлы, но я хочу только файлы с расширением php.

Мой пример выглядит так:

if (file_exists($path) && is_dir($path))
        {
            $result = scandir($path);

            $files = array_diff($result, array('.', '..'));

            if (count($files) > 0)
            {


                foreach ($files as $file)
                {
                    if (is_file("$path/$file"))
                    {
                        $array[] = $file;
                    }
                    else if (is_dir("$path/$file"))
                    {
                        $array[] = $this->getComponentPathNames("$path/$file");
                    }
                }
            }
        }

1 Ответ

0 голосов
/ 15 мая 2019

Это возможно с помощью простого оператора if с использованием функции substr () для извлечения последних 4 символов имени файла. Вот так:

$file = "test-file.php";

if ((substr($file, -4)) == ".php") {
    echo "This";
} else {
    echo "this one";
}

Так что, если последние 4 символа равны .php, продолжайте, в противном случае сделайте что-нибудь еще.

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