Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/05/2007, 20:01
Blurx
 
Fecha de Ingreso: abril-2007
Ubicación: Buenos Aires
Mensajes: 5
Antigüedad: 17 años, 9 meses
Puntos: 0
Obtener una imagen aleatoria, algo no funciona

Hola, estoy escribiendo una clase para obtener una imagen aleatoria de un directorio especifico. El problema es que la clase no devuelve la imagen, no da ningun error, pero no hace lo que deberia.

La clase es esta:

Código PHP:
class ImagenAleatoria {
   private 
$directorio;
   private 
$archivos = array();
   private 
$extensiones = array("jpg""jpeg""gif""png");
   
   function 
__construct($directorio) {
      if(
is_dir($directorio)) {
         
$this->directorio $directorio;
     
$this->leerDirectorio();
      }
      else
         die(
"Debe pasarse el nombre de un directorio");
   }
   
   public function 
obtenerImagen() {
      
$cantArchivos count($this->archivos);
      
$aleatorio rand(0$cantArchivos);
      
print_r($archivos);
      return (
$directorio."/".$archivos[$aleatorio]);
   }
   
   protected function 
leerDirectorio() {
      
$d opendir($this->directorio) or die("No se pudo abrir el directorio");
      
$archivo 0;
      while ((
$f readdir($d)) != false) {
     if (
is_file($this->directorio."/".$f)) {
        
$extencion substr($f, (strpos($f".") + 1));
        
$extencion strtolower($extencion);
        if (
in_array($extencion$this->extensiones)) {
           
$this->archivos[$archivo] = $f;
           
$archivo++;
        }
     }
      }
      
closedir($d);
   }

Y este es un ejemplo de su uso:

Código PHP:
$IAleatoria = new ImagenAleatoria("directorio");
echo 
"<img src=\"".$IAleatoria->obtenerImagen()."\" />"
Seguro es un error tonto, pero la verdad no lo veo, si alguien tiene alguna idea, que por favor me lo diga

Ah, y si quieren tambien pueden criticar el diseño de la clase y dar ideas sobre como mejorarlo.

Muchas gracias