- Listing directory on a server using php
- Listing directory on a server using php
- Read Local Directory and List Files in PHP
- Enable Directory Listing / Directory Browsing with .htaccess & create
- How to list all the directories of ftp server of iis using php for download
- How to list files inside public folder?
- How can I make the PHP Built-in Webserver access sub-directories?
- PHP: список файлов и директорий
- Базовые решения
- Использование glob()
- Используем opendir() , readdir() , и closedir() .
- Использование scandir()
- Воспользуемся итераторами SPL
- FilesystemIterator
Listing directory on a server using php
Solution: Try the below code to list all your files & directories: Solution: If you are want to list all files on same server then you can use php function scandir(); If you are want to list all files on remote server then you need to connect it using ftp like below code. as the first hit which states very clearly on the 3d paragraph that: I would actually refer to the warning at the top first!
Listing directory on a server using php
First of all scandir already returns array. There’s no need to use array .
$sticker_directories = scandir($directory); // `scandir` returns both files and subdirs. So, this string is not true echo "Number of subdirs at $directory :". count($sticker_directories) . "
"; // ^ s missed
After that all should be fine.
PHP scandir( ) Function, The scandir() function in PHP is an inbuilt function that is used to return an array of files and directories of the specified directory. The
Read Local Directory and List Files in PHP
In this video we’ll learn how to read files from the local directory and list them using PHP Duration: 13:23
Enable Directory Listing / Directory Browsing with .htaccess & create
Web Servers hide the contents of folders by default. If there’s no index.html or index.php file Duration: 4:39
How to list all the directories of ftp server of iis using php for download
Try the below code to list all your files & directories:
How to list directories, sub-directories and all files in php, Use scandir to see all stuff in the directory and is_file to check if the item is file or next directory, if it is directory, repeat the same
How to list files inside public folder?
If you are want to list all files on same server then you can use php function scandir();
If you are want to list all files on remote server then you need to connect it using ftp like below code.
$connection = ftp_connect("HOST_NAME"); $login = ftp_login($connection, "FTP_USERNAME","FTP_PASSWORD"); ftp_pasv($connection, true); $fileList = ftp_nlist($connection,'DIRECTORY_ON_FTP'); ftp_close($connection);
Get folder up one level, to reference the directory above. You can replace __DIR__ with dirname(__FILE__) before PHP 5.3.0. You should also be aware what __
How can I make the PHP Built-in Webserver access sub-directories?
Please try and explore the problem before you post on stackoverflow. Your answer was a google few clicks away : «php built in web server» search on google will return this : https://www.php.net/manual/en/features.commandline.webserver.php as the first hit which states very clearly on the 3d paragraph that:
URI requests are served from the current working directory where PHP was started, unless the -t option is used to specify an explicit document root. If a URI request does not specify a file, then either index.php or index.html in the given directory are returned. If neither file exists, the lookup for index.php and index.html will be continued in the parent directory and so on until one is found or the document root has been reached. If an index.php or index.html is found, it is returned and $_SERVER[‘PATH_INFO’] is set to the trailing part of the URI. Otherwise a 404 response code is returned.
I would actually refer to the warning at the top first!
List files in a directory with PHP and JavaScript, I’m trying to write a simple script that’s main purpose is to list all files from a directory on the server and save it as an array.
PHP: список файлов и директорий
В данном уроке мы разберемся с типовой задачей, которая возникает во время работы над проектом PHP: получение списка файлов и директорий. Обсудим несколько базовых и более изощренных подходов, с перечисление плюсов и минусов каждого. Первые три решения будут использовать типовые функции PHP, а затем представим более надежное с применением итераторов SPL.
Для предметного обсуждения решения и демонстраций предположим, что структура директорий имеет следующий вид:
\---manager | \---user | \---document.txt | \---data.dat | \---style.css |---article.txt |---master.dat |---script.php |---test.dat |---text.txt
Базовые решения
Первый набор решений основан на использовании функции glob() , комбинации функций opendir() , readdir() и closedir() , и также функции scandir() .
Использование glob()
Первое решение базируется на использовании функции glob(), которая позволяет выполнять поиск пути с помощью шаблонов. Функция имеет два параметра:
- $pattern (обязательный): шаблон поиска
- $flags (опциональный): один или несколько флагов, описание которых можно найти в документации
Рассмотрим примеры. Для поиска в директории всех файлов и директорий, имена которых заканчиваются на .txt, следует использовать код:
Если вывести переменную $filelist , то получим:
array ( 0 => 'article.txt', 1 => 'text.txt' )
Если нужен список файлов и директорий, имена которых начинаются на “te”, то код будет выглядеть так:
array ( 0 => 'test.dat', 1 => 'text.txt' )
А для получения списка только директорий с именами, содержащих “ma”, используем код:
Обратите внимание, что в последнем примере использован флаг GLOB_ONLYDIR в качестве второго параметра функции. Поэтому файл master.dat исключен из списка. Хотя функция glob() очень проста в использовании, иногда она недостаточно гибкая. Например, нет флага для получения только файлов (без директорий), которые соответствуют шаблону.
Используем opendir() , readdir() , и closedir() .
Второй подход к получению списка файлов и директорий, который мы обсудим, заключается в использовании функций opendir() , readdir() , и closedir() .
Функция opendir() открывает директорию и возвращает дескриптор соединения. Как только дескриптор получен, можно использовать функцию readdir() . С каждым обращением данная функция выдает имя следующего файла или директории внутри открытого каталога. Если все имена уже были перечислены, функция возвращает false. Для закрытия дескриптора используется функция closedir() .
В отличие от использования функции glob() , данный подход сложнее, так как у вас нет параметров, которые помогают фильтровать список возвращаемых имен файлов и директорий. Вы должны выполнить фильтрацию самостоятельно, чтобы получить нужный результат.
Ниже приведенный пример возвращает список имен файлов и директорий начинающихся на “te”:
При выполнении выше приведенного кода, переменная $entry будет содержать такие включения, как “.” и “..”. Это две виртуальные директории, которые имеются в каждом каталоге файловой системы. Они представляют текущий каталог и родительский каталог соответственно.
Второй пример выводит только файлы, содержащиеся в заданном каталоге.
array ( 0 => 'article.txt', 1 => 'master.dat', 2 => 'script.php', 3 => 'test.dat', 4 => 'text.txt' )
Использование scandir()
В завершение представим функцию scandir() . Она имеет только один обязательный параметр: путь для чтения. Функция возвращает массив файлов и директорий, расположенных по указанному пути. Для получения списка файлов и директорий по определенному критерию нужно выполнить дополнительную фильтрацию. С другой стороны, решение получается более кратким и не требует управления дескрипторами.
Данный пример показывает, как получить список файлов и каталогов, имена которых начинаются на “te”:
Воспользуемся итераторами SPL
Теперь рассмотрим использование итераторов SPL. Но прежде, чем приступить к решению нашей задачи, проведем введение в библиотеку SPL и итераторы. Библиотека SPL предоставляет серию классов для объектно ориентированных структур данных, итераторов, дескрипторов файлов и прочее.
Одно из преимуществ итераторов заключается в том, что они являются классами и их можно расширить для удовлетворения собственных нужд. Другой плюс состоит в том, что итераторы имеют собственные методы, которые являются полезными при решении множества типовых задач и располагаются в одном месте. Посмотрите на пример использования FilesystemIterator в сравнении с readdir() . Оба метода применяют цикл, но в случае readdir() вы обрабатываете только строку, а FilesystemIterator работает с объектом, который может содержать дополнительную информацию о файле или директории (размер, владелец, права доступа и так далее).
Конечно, PHP представляет возможность для получения такой информации с помощью функций,например filesize() и fileowner(). Но PHP5 основан на использовании концепции ООП. Поэтому лучше использовать современные методы работы с языком программирования. На нашем сайте есть уроки, посвященные работе с итераторами.
Как уже сообщалось во водной части урока, мы рассмотрим использование FilesystemIterator , RecursiveDirectoryIterator и GlobIterator . Первый наследуется от DirectoryIterator , а остальные от FilesystemIterator . Они все имеют один и тот же конструктор, который принимает два параметра:
- $path (обязательный): путь к пункту файловой системы, над которым совершаются операции
- $flags (опциональный): один или несколько флагов, перечисленных в документации
Реальное различие в данных итераторах заключается в их использовании для навигации по заданному пути.
FilesystemIterator
Использовать FilesystemIterator очень просто. Рассмотрим в действии. Представляем два примера. Первый показывает поиск всех файлов и каталогов, имена которых начинаются на “te”. Второй пример использует другой итератор RegexIterator для поиска всех файлов и каталогов, имена которых заканчиваются на “t.dat” или “t.php”. Итератор RegexIterator используется для фильтрации результата на основе регулярных выражений.
getFilename(), "te") === 0) < $filelist[] = $entry->getFilename(); > >
Выше приведенный код выдаст результат, аналогичный предыдущим примерам.
Второй пример с применением RegexIterator :