Как прочитать список файлов из папки с помощью PHP?

Я хочу прочитать список имен файлов в папке на веб-странице, используя php. есть ли простой скрипт для его получения?

Самый простой и интересный способ (imo) – glob

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

Но стандартный способ – использовать функции каталога.

 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

Если у вас есть проблемы с доступом к пути, возможно, вам нужно поставить это:

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

Есть глобус. На этой веб-странице есть хорошая статья, как перечислять файлы очень простым способом:

Как прочитать список файлов из папки с помощью PHP

Проверьте во многих папках:

Folder_1 и folder_2 – это имена папок, из которых мы должны выбирать файлы.

$ format требуется формат.

 <?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>"; } } ?> 

Вы можете использовать стандартные функции каталога

 $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> в <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> в <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 = 0 переменная находит . файлы изображений и будет начинаться с первого имени файла.