Я хочу прочитать список имен файлов в папке на веб-странице, используя php. есть ли какой-либо простой script, чтобы получить его?
Как прочитать список файлов из папки с помощью PHP?
Ответ 1
Самый простой и интересный способ (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. Если вам интересно
Ответ 2
Эта функция scandir():
$dir = 'dir';
$files = scandir($dir, 0);
for($i = 2; $i < count($files); $i++)
print $files[$i]."<br>";
Ответ 3
Это то, что я люблю делать:
$files = array_values(array_filter(scandir($path), function($file) use ($path) {
return !is_dir($path . '/' . $file);
}));
foreach($files as $file){
echo $file;
}
Ответ 4
Если у вас есть проблемы с доступом к пути, возможно, вам нужно поставить это:
$root = $_SERVER['DOCUMENT_ROOT'];
$path = "/cv/";
// Open the folder
$dir_handle = @opendir($root . $path) or die("Unable to open $path");
Ответ 5
Есть глобус. На этой веб-странице есть хорошая статья, как перечислять файлы очень простым способом:
Ответ 6
Проверка во многих папках:
Folder_1 и folder_2 - это имена папок, из которых мы должны выбирать файлы.
Формат$требуется формат.
<?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>";
}
}
?>
Ответ 7
Вы можете использовать стандартные функции каталогов
$dir = opendir('/tmp');
while ($file = readdir($dir)) {
if ($file == '.' || $file == '..') {
continue;
}
echo $file;
}
closedir($dir);
Ответ 8
Существует также очень простой способ сделать это с помощью класса RecursiveTreeIterator
, здесь: fooobar.com/questions/100148/...
Ответ 9
<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>
Ответ 10
<?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/означает ваш каталог изображений. $ я = 0 переменная находит. файлов изображений и будет начинаться с первого имени файла.