texto sobreescribir reemplazar propiedades mostrar manejo manejador leer informatica ejemplos archivos archivo php arrays file directory

sobreescribir - PHP lista todos los archivos en el directorio



propiedades de un archivo php (5)

¿Entonces estás buscando una lista recursiva de directorios?

function directoryToArray($directory, $recursive) { $array_items = array(); if ($handle = opendir($directory)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { if (is_dir($directory. "/" . $file)) { if($recursive) { $array_items = array_merge($array_items, directoryToArray($directory. "/" . $file, $recursive)); } $file = $directory . "/" . $file; $array_items[] = preg_replace("//////si", "/", $file); } else { $file = $directory . "/" . $file; $array_items[] = preg_replace("//////si", "/", $file); } } } closedir($handle); } return $array_items; }

Posible duplicado:
Obtener la jerarquía de un directorio con PHP
Obtener los nombres de todos los archivos en un directorio con PHP

He visto funciones para enumerar todos los archivos en un directorio, pero ¿cómo puedo enumerar todos los archivos en subdirectorios también , por lo que devuelve una matriz como?

$files = files("foldername");

So $files es algo similar a

array("file.jpg", "blah.word", "name.fileext")


Creo que estás buscando la función de glob de php . Puede llamar a glob(**) para obtener una lista de archivos recursivos.

EDIT: me di cuenta de que mi glob no funciona de manera confiable en todos los sistemas, así que presento esta versión mucho más bonita de la respuesta aceptada.

function rglob($pattern=''*'', $flags = 0, $path='''') { $paths=glob($path.''*'', GLOB_MARK|GLOB_ONLYDIR|GLOB_NOSORT); $files=glob($path.$pattern, $flags); foreach ($paths as $path) { $files=array_merge($files,rglob($pattern, $flags, $path)); } return $files; }

de: http://www.phpfreaks.com/forums/index.php?topic=286156.0


Necesitaba implementar la lectura de un directorio determinado, y confiando en la función de , creé esta página para leer los directorios que dependen de JQuery:

<?php /** * Recovers folder structure and files of a certain path * * @param string $path Folder where files are located * @param string $pattern Filter by extension * @param string $flags Flags to be passed to the glob * @return array Folder structure */ function getFolderTree($path) { //Recovers files and directories $paths = glob($path . "*", GLOB_MARK | GLOB_ONLYDIR | GLOB_NOSORT); $files = glob($path . "*"); //Traverses the directories found foreach ($paths as $key => $path) { //Create directory if exists $directory = explode("//", $path); unset($directory[count($directory) - 1]); $directories[end($directory)] = getFolderTree($path); //Verify if exists files foreach ($files as $file) { if (strpos(substr($file, 2), ".") !== false) $directories[] = substr($file, (strrpos($file, "//") + 1)); } } //Return the directories if (isset($directories)) { return $directories; } //Returns the last level of folder else { $files2return = Array(); foreach ($files as $key => $file) $files2return[] = substr($file, (strrpos($file, "//") + 1)); return $files2return; } } /** * Creates the HTML for the tree * * @param array $directory Array containing the folder structure * @return string HTML */ function createTree($directory) { $html = "<ul>"; foreach($directory as $keyDirectory => $eachDirectory) { if(is_array($eachDirectory)) { $html .= "<li class=''closed''><span class=''folder''>" . $keyDirectory . "</span>"; $html .= createTree($eachDirectory); $html .= "</li>"; } else { $html .= "<li><span class=''file''>" . $eachDirectory . "</span></li>"; } } $html .= "</ul>"; return $html; } //Create output $directory = getFolderTree(''../videos''); $htmlTree = createTree($directory["videos"]); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/> <title>PHP Directories</title> <link rel="stylesheet" href="http://jquery.bassistance.de/treeview/jquery.treeview.css" /> <link rel="stylesheet" href="http://jquery.bassistance.de/treeview/demo/screen.css" /> <script src="http://jquery.bassistance.de/treeview/lib/jquery.js" type="text/javascript"></script> <script src="http://jquery.bassistance.de/treeview/lib/jquery.cookie.js" type="text/javascript"></script> <script src="http://jquery.bassistance.de/treeview/jquery.treeview.js" type="text/javascript"></script> <script type="text/javascript" src="http://jquery.bassistance.de/treeview/demo/demo.js"></script> </head> <body> <div id="main"> <ul id="browser" class="filetree"> <?php echo $htmlTree;?> </ul> </div> </body> </html>

La estructura utilizada en el árbol con JQuery, el sitio fue tomado: http://jquery.bassistance.de/treeview/demo/

¡Espero que sea útil!



function files($path,&$files = array()) { $dir = opendir($path."/."); while($item = readdir($dir)) if(is_file($sub = $path."/".$item)) $files[] = $item;else if($item != "." and $item != "..") files($sub,$files); return($files); } print_r(files($_SERVER[''DOCUMENT_ROOT'']));