problemas con carpetas en php. estoy intentando ahcer un random para mostrar una imagen de una serie de carpetas. hasta ahi todo bien la imagen la muestro y se hace un random en las diferentes carpetas que tengo como base - 4 - por asi decirlo tengo 4 carpetas - norte america - sur america - centro america - caribe. dentro de ellas he colocado varias imagenes que se muestra 1 a la vez gracias al random hasta ahi todo funciona muy bien. mi problema viene cuando dentro de la carpeta de norte america. tengo que meter mas carpetas. ya que norte america viene siendo como la seccion y las deemas carpetas como los apartados. no se si me explico. es decir dentro de Norte America van Canada - USA - Mexico. y dentro irian las imagenes representativas de cada zona... ahi es cuando ya mi runtina no me funciona. por eso pido de su ayuda. y que decir de las demas carpetas padre.. en la de centro america son 6 subcarpetas cada una con sus imagenes. espero puedan ayudarme les agrego el codigo que estoy utilizando. soy un principiante de php asi que si se puede mejorar el codigo cuanto con ustedes para optimizarlo.
Código PHP:
<?php
$root = "gallery/img/"; // direccion donde se encuentran las carpetas padre
$tot = "3";
$path = array( "north_am", // aqui genero el random de las carpetas
"centro_am",
"sud_am",
"caribe");
$n = mt_rand(0, $tot);
$folder = $root.'/'.$path[$n];
$tit= array("Norte América", "Centro América", "Sur América", "Caribe"); // simplemente saco el nombre de la carpeta padre para ponerlo como titulo
$extList = array(); // un array con las extensiones validas de imagenes
$extList['gif'] = 'image/gif';
$extList['jpg'] = 'image/jpeg';
$extList['jpeg'] = 'image/jpeg';
$extList['png'] = 'image/png';
$img = null;
if (substr($folder, -1) != '/') {
$folder = $folder . '/';
}
if (isset($_GET['img'])) {
$imageInfo = pathinfo($_GET['img']);
if (isset($extList[strtolower($imageInfo['extension'])]) && file_exists($folder .
$imageInfo['basename'])) {
$img = $folder . $imageInfo['basename'];
}
} else {
$fileList = array();
$handle = opendir($folder);
// echo $folder;
while (false !== ($file = readdir($handle))) {
$file_info = pathinfo($file);
if (isset($extList[strtolower($file_info['extension'])])) {
$fileList[] = $file;
}
}
closedir($handle);
$ntotal = count($fileList);
if ($ntotal > 0) {
$imageNumber = rand(0, $ntotal - 1);
$img = $folder . $fileList[$imageNumber];
}
}
?>
<figure><img title="" src="img/maske_gallery.png" style="background: #000 url('<?php echo $img ?>') center center no-repeat;"/></figure></p>
<h3><?php echo $tit[$n];
?></h3>