如何使用PHP从文件夹中读取文件的列表?

我想阅读一个列表中的文件在一个文件夹中的文件名使用PHP。 有没有简单的脚本来实现它?

最简单和最有趣的方式(IMO)是glob

foreach (glob("*.*") as $filename) { echo $filename."<br />"; } 

但标准的方法是使用目录function。

 if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { echo "filename: .".$file."<br />"; } closedir($dh); } } 

还有SPL DirectoryIterator方法 。 如果你感兴趣

这是我喜欢做的事情:

 $files = array_values(array_filter(scandir($path), function($file) { return !is_dir($file); })); foreach($files as $file){ echo $file; } 

有这个函数scandir()

 $dir = 'dir'; $files = scandir($dir, 0); for($i = 2; $i < count($files); $i++) print $files[$i]."<br>"; 

更多在这里在php.net手册

如果你在访问path时遇到了问题,也许你需要把这个:

 $root = $_SERVER['DOCUMENT_ROOT']; $path = "/cv/"; // Open the folder $dir_handle = @opendir($root . $path) or die("Unable to open $path"); 

有一个glob。 在这个网页上有很好的文章如何以非常简单的方式列出文件:

如何使用PHP从文件夹读取文件列表

检入多个文件夹:

Folder_1和folder_2是文件夹的名称,我们必须从中select文件。

$格式是必需的格式。

 <?php $arr = array("folder_1","folder_2"); $format = ".csv"; for($x=0;$x<count($arr);$x++){ $mm = $arr[$x]; foreach (glob("$mm/*$format") as $filename) { echo "$filename size " . filesize($filename) . "<br>"; } } ?> 

您可以使用标准目录function

 $dir = opendir('/tmp'); while ($file = readdir($dir)) { if ($file == '.' || $file == '..') { continue; } echo $file; } closedir($dir); 

还有一个非常简单的方法可以在RecursiveTreeIterator类的帮助下做到这一点,在这里回答: https : //stackoverflow.com/a/37548504/2032235

 <html> <head> <title>Names</title> </head> <body style="background-color:powderblue;"> <form method='post' action='alex.php'> <input type='text' name='name'> <input type='submit' value='name'> </form> Enter Name: <?php if($_POST) { $Name = $_POST['name']; $count = 0; $fh=fopen("alex.txt",'a+') or die("failed to create"); while(!feof($fh)) { $line = chop(fgets($fh)); if($line==$Name && $line!="") $count=1; } if($count==0 && $Name!="") { fwrite($fh, "\r\n$Name"); } else if($count!=0 && $line!="") { echo '<font color="red">'.$Name.', the name you entered is already in the list.</font><br><br>'; } $count=0; fseek($fh, 0); while(!feof($fh)) { $a = chop(fgets($fh)); echo $a.'<br>'; $count++; } if($count<=1) echo '<br>There are no names in the list<br>'; fclose($fh); } ?> </body> </html> 
 <?php $files = glob("images/*.*"); for ($i=0; $i<count($files); $i++) { // $i mean to start first files names. $num = $files[$i]; echo '<img src="'.$num.'" />'."<br />\n"; } ?> 

images /意思是你的图片目录。 $ i = 0variables是find的 图像文件,并将首先启动文件名。