скажем, на моем веб-сервере есть папка с вызовом 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;