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

скажем, на моем веб-сервере есть папка с вызовом upload_files, тогда одна из моих php-страниц должна захватить все имя файла в этой папке, в которой я googled, но до сих пор возвращаемое имя файла – это только страница,

Существует множество способов получения содержимого папок, таких как glob , scandir , DirectoryIterator и RecursiveDirectoryIterator , и я бы рекомендовал вам проверить DirectoryIterator, поскольку он имеет большой потенциал.

Пример использования метода scandir

 $dirname = getcwd(); $dir = scandir($dirname); foreach($dir as $i => $filename) { if($filename == '.' || $filename == '..') continue; var_dump($filename); } 

Пример использования класса DirectoryIterator

 $dirname = getcwd(); $dir = new DirectoryIterator($dirname); foreach ($dir as $path => $splFileInfo) { if ($splFileInfo->isDir()) continue; // do what you have to do with your files //example: get filename var_dump($splFileInfo->getFilename()); } 

Ниже представлен менее распространенный пример с использованием класса RecursiveDirectoryIterator :

 //use current working directory, can be changed to directory of your choice $dirname = getcwd(); $splDirectoryIterator = new RecursiveDirectoryIterator($dirname); $splIterator = new RecursiveIteratorIterator( $splDirectoryIterator, RecursiveIteratorIterator::SELF_FIRST ); foreach ($splIterator as $path => $splFileInfo) { if ($splFileInfo->isDir()) continue; // do what you have to do with your files //example: get filename var_dump($splFileInfo->getFilename()); } 

Я согласен с Джоном:

 glob("upload_files/*") 

возвращает массив имен файлов.

но ОЗНАКОМЬТЕСЬ! плохие вещи могут произойти, когда вы позволяете людям загружать файлы на ваш веб-сервер. создание сценария загрузки для загрузки довольно сложно.

просто пример: вы должны убедиться, что никто не может загрузить php-файл в папку для загрузки. если они могут, они могут запустить его, введя соответствующий URL-адрес в свой браузер.

узнайте о php & security, прежде чем пытаться это сделать!

Далее будут напечатаны все файлы в папке upload_files .

 $files = glob("upload_files/*"); foreach ($files as $file) print $file;