要获取一个目录下的所有文件及目录,可以使用PHP自带的scandir()
函数,该函数将返回一个数组,包含目录中所有文件和子目录的名称。
首先,需要指定要读取的目录,并将其传递给scandir()
函数。例如,假设要读取名为/var/www/html
的目录,代码如下:
$dir_path = "/var/www/html";
$file_list = scandir($dir_path);
此时变量$file_list
将包含指定目录下的所有文件和子目录的名称,包括.
和..
这两个特殊目录。
如果要去除这两个特殊目录,可以使用如下代码:
$dir_path = "/var/www/html";
$file_list = array_diff(scandir($dir_path), array('.', '..'));
此时变量$file_list
将仅包含指定目录下的文件和子目录的名称。
此外,还有其他多种方法可以获取目录下所有文件和子目录的名称,例如使用glob()
函数、递归函数等。下面是一些示例演示这些方法:
- 使用
glob()
函数
$dir_path = "/var/www/html";
$file_list = glob($dir_path . "/*");
foreach ($file_list as $file) {
echo $file . "<br>";
}
此代码使用glob()
函数获取目录下所有文件和子目录的名称,返回的数组中仅包含文件和目录的名称,不包括.
和..
。
- 使用递归函数
function get_files($dir_path) {
$file_list = array();
$files = scandir($dir_path);
foreach ($files as $file) {
if ($file != '.' && $file != '..') {
if (is_dir($dir_path . "/" . $file)) {
$file_list = array_merge($file_list, get_files($dir_path . "/" . $file));
} else {
$file_list[] = $dir_path . "/" . $file;
}
}
}
return $file_list;
}
$dir_path = "/var/www/html";
$file_list = get_files($dir_path);
foreach ($file_list as $file) {
echo $file . "<br>";
}
此代码使用递归函数获取目录下所有文件和子目录的名称,并返回一个包含所有文件和子目录名称的数组。该函数会遍历所有子目录,直到将所有子目录中的文件全部找到才停止遍历。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php获取目录下所有文件及目录(多种方法)(推荐) - Python技术站