Un detallito que se me pasó ..
A las funcoines opendir() le has de pasar una ruta absoluta de tu archivo .. Si tu guardas en tu BD la ruta tipo "http://www.tal.tal/...../animales/perros .." tendrás que quitar el "http://www.tal.tal/" para quedarte con la ruta "absoluta" y componerla con:
$dir=$_SERVER['DOCUMENT_ROOT']."./".$ruta_absoluta;
donde $ruta_absoluta .. podrías conseguirla haciendo algo tipo:
$ruta_absoluta=str_replace ('http://www.tal.tal/','',$row['directorio']);
(ojo con el último / de
http://www.tal.tal/ .. es importante)
Un saludo,