MANUAL DE PHP

(y algo mas)windsurf pozo izquierdo
Google
search for in the  
ELMARRAJO.COM mysql bulma desarrollo web linux fedora html ayuda

windsurf mercedes camper

dir

(PHP 3, PHP 4, PHP 5)

dir -- Clase de directorio

Descripción

class dir {

dir ( string directorio )

string path

resource handle

string read ( void )

void rewind ( void )

void close ( void )

}

Un mecanismo pseudo-orientado a objetos para la lectura de un directorio. El directorio dado es abierto. Se encuentran disponibles dos propiedades una vez el directorio ha sido abierto. La propiedad handle puede ser usada con otras funciones de directorio como readdir(), rewinddir() y closedir(). La propiedad path se define con la ruta del directorio que fue abierto. Hay tres métodos disponibles: read, rewind y close.

Ejemplos

Ejemplo 1. Ejemplo de dir()

Por favor note la forma en que el valor de retorno de dir() es chequeado en el siguiente ejemplo. Se está probando explícitamente si el valor de retorno es idéntico (igual y del mismo tipo que--vea los Operadores de Comparación para más información) a FALSE ya que de otra forma, cualquier entrada de directorio cuyo nombre evalúe a FALSE detendrá el ciclo.

<?php
$d
= dir("/etc/php5");
echo
"Gestor: " . $d->handle . "\n";
echo
"Ruta: " . $d->path . "\n";
while (
false !== ($entrada = $d->read())) {
   echo
$entrada."\n";
}
$d->close();
?>

El resultado del ejemplo seria algo similar a:

Gestor: Resource id #2
Ruta: /etc/php5
.
..
apache
cgi
cli

Notes

Nota: El orden en el que las entradas de directorio son devueltas por el método read depende del sistema.

Nota: Se define la clase interna Directory, lo que quiere decir que no será posible definir sus propias clases con ese nombre. Para una lista completa de clases predefinidas en PHP, por favor consulte Clases Predefinidas.



add a note add a note User Contributed Notes
dir
done_to_death at example dot com
23-Aug-2006 05:56
function directoryList($start,$win32=false){
   if($win32){
       $slash="\\";
   }else{
       $slash="/";
   }
   $basename = pathinfo($start);
   $basename = $basename['basename'];
   $ls=array();
   $dir = dir($start);
   while($item = $dir->read()){
       if(is_dir($start.$slash.$item)&& $item!="." && $item!=".."){
           $ls[$basename][]=directoryList($start.$slash.$item,$win32);
       }else{
           if($item!="."&&$item!=".."){
               $ls[$basename][]=$item;
           }
       }
   }
   return $ls;
}

$path = pathinfo(__FILE__);
$ls = directoryList($path['dirname'], true);
22-Feb-2006 01:02
Regarding samuel's comment about the dir() function not supporting Unicode properly, it's all in the encoding. The function does NOT internally change Unicode characters into question marks (?), as I was first led to believe. If you simply try to output them in UTF-8, they'll show up just right.
samuel dot l at mushicrew dot com
24-Jan-2006 10:52
Note that the dir object will use the default encoding for non-unicode programs on Windows with PHP 5.x.

So, if you have a file named with characters unsupported by the current default encoding, the dir->read() method will return a wrong entry.

<?php
/*
** This script is on the same directory than a file named with
** unsupported characters for the current default encoding.
*/
$d = dir("./");
while(
false !== ($e = $d->read()))
   echo
$e . '<br/>';
?>

This will print a "?" for every unsupported characters, and not the right file name. So take care if you check with is_file/is_dir right after enumerating.
radar at frozenplague dot net
13-Jan-2006 12:00
Regarding jaqb's post about a correction to the read_dir function, I have one small fix too if people wish to also list the directories inside this directory and read them into the same array.

<?
function read_dir($dir) {
  
$array = array();
  
$d = dir($dir);
   while (
false !== ($entry = $d->read())) {
       if(
$entry!='.' && $entry!='..') {
          
$entry = $dir.'/'.$entry;
           if(
is_dir($entry)) {
              
$array[] = $entry;
              
$array = array_merge($array, read_dir($entry));
           } else {
              
$array[] = $entry;
           }
       }
   }
  
$d->close();
   return
$array;
}
?>
fordiman at gmail dot com
10-Jan-2006 10:15
Saw the leaf dirs bit...  quick mod:

function preg_ls ($path=".", $rec=false, $pat="/.*/") {
   $pat=preg_replace ("|(/.*/[^S]*)|s", "\\1S", $pat);
   while (substr ($path,-1,1) =="/") $path=substr ($path,0,-1);
   if (!is_dir ($path) ) $path=dirname ($path);
   if ($rec!==true) $rec=false;
   $d=dir ($path);
   $ret=Array ();
   while (false!== ($e=$d->read () ) ) {
       if ( ($e==".") || ($e=="..") ) continue;
       if ($rec && is_dir ($path."/".$e) ) {
           $ret=array_merge ($ret,preg_ls($path."/".$e,$rec,$pat));
           continue;
       }
       if (!preg_match ($pat,$e) ) continue;
       $ret[]=$path."/".$e;
   }
   return (empty ($ret) && preg_match ($pat,basename($path))) ? Array ($path."/") : $ret;
}

example:

foreach (preg_ls ("/usr/share/fluxbox", true, "/[LT]e[sa]/i") as $file) echo $file."\n";

output:

/usr/share/fluxbox/styles/Leaf/
/usr/share/fluxbox/styles/Clean
/usr/share/fluxbox/styles/Testing/
fordiman at gmail dot com
10-Jan-2006 10:05
This one's pretty nice.  After getting frustrated for hunting down .jpg files in my massive music collection (PHP would run out of memory), I thought there should be a preg_ls function.

function preg_ls ($path=".", $rec=false, $pat="/.*/") {
   // it's going to be used repeatedly, ensure we compile it for speed.
   $pat=preg_replace("|(/.*/[^S]*)|s", "\\1S", $pat);
   //Remove trailing slashes from path
   while (substr($path,-1,1)=="/") $path=substr($path,0,-1);
   //also, make sure that $path is a directory and repair any screwups
   if (!is_dir($path)) $path=dirname($path);
   //assert either truth or falsehoold of $rec, allow no scalars to mean truth
   if ($rec!==true) $rec=false;
   //get a directory handle
   $d=dir($path);
   //initialise the output array
   $ret=Array();
   //loop, reading until there's no more to read
   while (false!==($e=$d->read())) {
       //Ignore parent- and self-links
       if (($e==".")||($e=="..")) continue;
       //If we're working recursively and it's a directory, grab and merge
       if ($rec && is_dir($path."/".$e)) {
           $ret=array_merge($ret,preg_ls($path."/".$e,$rec,$pat));
           continue;
       }
       //If it don't match, exclude it
       if (!preg_match($pat,$e)) continue;
       //In all other cases, add it to the output array
       $ret[]=$path."/".$e;
   }
   //finally, return the array
   return $ret;
}

Not bad for a mere 18 lines, don't you think?

Example use:

foreach (preg_ls("/etc/X11", true, "/.*\.conf/i") as $file) echo $file."\n";

Output:

/etc/X11/xkb/README.config
/etc/X11/xorg.conf-vesa
/etc/X11/xorg.conf~
/etc/X11/gui.conf
/etc/X11/xorg.conf
/etc/X11/xorg.conf-fbdev
Anton Backer
04-Jan-2006 07:24
i've modified the script below to get the leaf folders of any directory (folders with no subfolders).

note: this does not return the folder passed in as a parameter, even if it has no subfolders.

<?php
function get_leaf_dirs($dir) {
  
$array = array();
  
$d = dir($dir);
   while (
false !== ($entry = $d->read())) {
       if(
$entry!='.' && $entry!='..') {
          
$entry = $dir.'/'.$entry;
           if(
is_dir($entry)) {
              
$subdirs = get_leaf_dirs($entry);
               if (
$subdirs)
                
$array = array_merge($array, $subdirs);
               else
                
$array[] = $entry;
           }
       }
   }
  
$d->close();
   return
$array;
}
?>

Citas célebres

La amistad es como la música: dos cuerdas del mismo tono vibrarán ambas, aunque sólo toquéis una.

Francis Quarles
Citas en tu mail
©Contenidos Gratis

Ilusiones Opticas
ilusion_optica_058.jpg
Contenidos Web

Chiste de... Niños
Me he portado bien

- Jaimito, ¿te has portado bien hoy en el colegio?

- Pues claro, me he pasado el día entero de cara a la pared.
Chistes en tu mail
©ContenidosGratis

Humor Gráfico
humor_grafico_051.jpg
Contenidos Web

Inicio | Acción | Estrategia | Palabras | Puzzles | Solitarios | Foro Trucos
Cake ManiaCake Mania
Jugadores: 6835
Categoría del juego: Acción
Objetivo del juego: Ayuda a Jill a recuperar la pastelería de su abuela llevando su propia pastelería; consigue clientes y gana dinero.
Rainbow WebRainbow Web
Jugadores: 2199
Categoría del juego: Puzzles
Objetivo del juego: Rompe un pegajoso hechizo y salva un reino de fantasía en Rainbow Web. Tendrás toneladas de diversión mientras juegas a este mágico desafío para la mente.
Mahjongg FortunaMahjongg Fortuna
Jugadores: 12462
Categoría del juego: Solitarios
Objetivo del juego: Velocidad y habilidad mental son las armas más importantes en esta versión de un antiguo juego asiático. Despeja el tablero lo antes posible haciendo clic en las fichas iguales y gánate la fama eterna de la puntuación más alta.
Chainz 2Chainz 2
Jugadores: 6955
Categoría del juego: Puzzles
Objetivo del juego: Entra en el mundo de las combinaciones con Chainz 2: Relinked, emocionante secuela del exitazo del año pasado, Chainz. Gira eslabones y crea combinaciones de 3 ó más.
DeliciousDelicious
Jugadores: 4405
Categoría del juego: Acción
Objetivo del juego: ¿Eres un as de la multitarea? ¿Quieres que tus clientes estén contentos? ¡Pues Delicious es tu juego! Sacia el apetito de los clientes y tenlos contentos; ¡no te arriesgues!
BookwormBookworm
Jugadores: 4568
Categoría del juego: Palabras
Objetivo del juego: Junta las letras para formar palabras. ¡Las palabras más largas valen más puntos!
ZumaZuma
Jugadores: 4976
Categoría del juego: Acción
Objetivo del juego: Controla el ídolo de la rana de piedra de los antiguos Zuma en este intrigante enigma de acción. ¡Dispara bolas para formar conjuntos de tres, pero si dejas que lleguen a la calavera dorada morirás!
Jewel of AtlantisJewel of Atlantis
Jugadores: 3798
Categoría del juego: Puzzles
Objetivo del juego: Descubre la ciudad hundida de la Atlántida y busca valiosos tesoros. Viaja más allá de las profundidades del mar y vive trepidantes aventuras en Jewel of Atlantis.
Jewel QuestJewel Quest
Jugadores: 3727
Categoría del juego: Puzzles
Objetivo del juego: Convierte la arena de la antigua selva en oro tan rápido como puedas juntando grupos de 3 elementos. ¡Los grupos más grandes valen más puntos!
Bejeweled 2Bejeweled 2
Jugadores: 3659
Categoría del juego: Puzzles
Objetivo del juego: Con cuatro modos de juego únicos y fascinantes, nuevas piezas de juego explosivas e imponentes fondos planetarios, Bejeweled 2 es mucho más adictivo que nunca.
Contenidos gratis en tu webSiguiente >>

Fotos divertidas
fotos_increibles_0210.jpg
Contenidos Web
microrobots avion deportes riesgo recetas cocina canaria juegos online gratis moto motociclismo horoscopos naranjas valencianas surf canarias montañismo ciudades turismo postales gratis library Horoscopos Diarios Windsurf Canarias
fregadero microondas placa electrica bañopreparar camper pantalla plananevera compresor electricacamper fiat ducato camper baño quimicomampara enrollable bañocamper aire climatizadofurgoneta surf windsurffurgoneta surf windsurftelevisor furgonetas camperfurgonetas camper cama

Sudoku del día
Nivel de dificultad: Fácil



Cómo jugar:
El juego consiste en colocar los números del 1 al nueve de tal forma que no se repita el mismo número en la columna, fila y caja (bloques 3x3 enmarcados).

©Contenidos Gratis | Sudoku en tu mail

Warning: array_rand(): First argument has to be an array in /var/www/html/contenidos/efemerides.php on line 14
Sucedió el...

31 de agosto de

Efemérides en tu mail
©Contenidos Gratis
windsurf canarias youtube porno canarias baleares valencia madrid fallera mayor campus party alcacer feria valencia fernando alonso loterias dinero inversiones violencia de genero makro empresas cartera soledad tolerancia metro valencia gobierno de españa violencia de genero UIMP navidad