solo - ¿Cómo leer una lista de archivos de una carpeta usando PHP?
mostrar imagenes con php desde mysql utilizando solo su ruta (10)
Quiero leer una lista de los nombres de los archivos en una carpeta en una página web usando php. ¿hay algún script simple para lograrlo?
Esto es lo que me gusta hacer:
$files = array_values(array_filter(scandir($path), function($file) {
return !is_dir($file);
}));
foreach($files as $file){
echo $file;
}
Hay esta función scandir () :
$dir = ''dir'';
$files = scandir($dir, 0);
for($i = 2; $i < count($files); $i++)
print $files[$i]."<br>";
Hay un glob. En esta página web hay un buen artículo sobre cómo hacer una lista de archivos de una manera muy simple:
La forma más simple y divertida (imo) es glob
foreach (glob("*.*") as $filename) {
echo $filename."<br />";
}
Pero la forma estándar es usar las funciones de directorio.
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo "filename: .".$file."<br />";
}
closedir($dh);
}
}
También están los métodos SPL DirectoryIterator . Si estás interesado
Puede usar funciones de directorio estándar
$dir = opendir(''/tmp'');
while ($file = readdir($dir)) {
if ($file == ''.'' || $file == ''..'') {
continue;
}
echo $file;
}
closedir($dir);
Si tiene problemas para acceder a la ruta, tal vez deba poner esto:
$root = $_SERVER[''DOCUMENT_ROOT''];
$path = "/cv/";
// Open the folder
$dir_handle = @opendir($root . $path) or die("Unable to open $path");
También hay una manera muy simple de hacerlo con la ayuda de la clase RecursiveTreeIterator
, que se responde aquí: https://.com/a/37548504/2032235
Compruebe en muchas carpetas:
Folder_1 y folder_2 son el nombre de las carpetas, de donde tenemos que seleccionar los archivos.
$ formato es requerido formato.
<?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>";
}
}
?>
<?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 / es significado para su directorio de imágenes. $ i = 0 variable es encontrar el . archivos de imágenes y se iniciará el primer nombre de archivo.
<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>