Con este codigo no te puede fallar:
Código PHP:
<PHP?
function imagen_aleatoria($path) {
$archivos = array();
$dir = opendir($path);
while (false !== ($file = readdir($dir))) {
if (strpos($file, '.gif') || strpos($file, '.jpg') ) $archivos[] = $file;
}
$muestra = rand(0,count($archivos)-1);
return "<img src='/$path/".$archivos[$muestra]."'>";
}
echo imagen_aleatoria("carpeta/lasimagenes");
?>
Creo que este codigo cubre todos los posibles fallos. No puede fallar
Como puedes ver lo que se comprueba aqui es que $file sea una imagen antes de añadirlo.
Si usas .png tambien, tendras que añadir un " || strpos($file,'.png') " al if(
NOTA: podria fallar si llegas a crear unarchivo de imagen con el nombre ".gif", quiero decir, sin nombre , solo .gif ó .jpg, cosa que creo sera poco probable XD.