在PHP中,有五种主要的方法可以遍历文件和目录。以下是这些方法的详细说明:
使用foreach遍历目录
 你可以使用foreach循环遍历目录中的所有文件。
$dir = 'directory_path';  
   
 if (is_dir($dir)) {  
     $files = scandir($dir);  
     foreach ($files as $file) {  
         if (is_file($dir . '/' . $file)) {  
             echo $file . "\n";  
         }  
     }  
 }
 使用foreach遍历目录的递归
 如果你需要遍历目录及其所有子目录中的文件,你可以使用递归。
function listFiles($dir) {  
     $files = array();  
     foreach (scandir($dir) as $file) {  
         if ($file == '.' || $file == '..') {  
             continue;  
         }  
         $path = $dir . '/' . $file;  
         if (is_dir($path)) {  
             $files = array_merge($files, listFiles($path));  
         } else {  
             $files[] = $path;  
         }  
     }  
     return $files;  
 }  
   
 $files = listFiles('directory_path');  
 foreach ($files as $file) {  
     echo $file . "\n";  
 }
 使用glob函数
 glob函数可以返回一个数组,包含匹配指定模式的文件路径。
$files = glob('directory_path/*');  
 foreach ($files as $file) {  
     echo $file . "\n";  
 }
 使用scandir函数
 scandir函数可以返回一个数组,包含指定目录下的所有文件和子目录。然后你可以使用foreach循环遍历这个数组。
$files = scandir('directory_path');  
 foreach ($files as $file) {  
     echo $file . "\n";  
 }
 使用DirectoryIterator
 PHP还提供了一个DirectoryIterator类,可以用来遍历目录。这个类是面向对象的,所以你需要使用面向对象的方式来使用它。
 $dir = new DirectoryIterator('directory_path');  
 foreach ($dir as $file) {  
     if (!$file->isDot()) { // 排除 '.' 和 '..' 目录  
         echo $file->getFilename() . "\n";  
     }  
 }