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