Este Script recoge los nombres de unas fotos ubicados en una tabla de base de datos, y comprueba si éstas existen en determinada carpeta, además puede buscar recursivamente (dentro de sus subdirectorios).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
<?php //Reporte de errores error_reporting(0); //Funcion que recorre los directorios y archivos del la ruta dada como parametro function listarArchivos($path){ //Abre el directorio pasado como parametro $dir = opendir($path); //Inicializa el array donde se guardarán los elementos, directorios y archivos $files = array(); //Conectamos a la Base de Datos $conn = mysql_connect("localhost", "root", "LGxY1G7C"); //Seleccionamos la Base de Datos punteos mysql_select_db("punteos", $conn); //Empezamos a recorrer los elementos while ($elemento = readdir($dir)){ //Si el elemendo no es ni . ni .. if( $elemento != "." && $elemento != ".." ){ if( is_dir($path.$elemento) ){ listarArchivos( $path.$elemento.'/' ); } else{ //Si no, agregamos el elemento al array $files[] = $elemento; } }// Cerramos if }// Cerramos while //Hacemos la consulta que nos lista los nombres de las fotos que estan en la BD $consulta = "SELECT FOTO FROM IMG_ART_FALTAN where FOTO!='' ORDER BY FOTO "; //Asignamos el resultado de la consulta a una variable o array $resultado = mysql_query($consulta, $conn) or die(mysql_error()); //Recorremos el array resultado while ($linea = mysql_fetch_array($resultado, MYSQL_ASSOC)) { //Inicializamos la variable que nos servirá para identificar a las fotos no encontradas $encontrado=0; //Recorremos el array $resultado, y asignamos cada linea a la variable $imagen foreach ($linea as $imagen) { //Recorremos el array $files, donde están almacenados todos los elementos previamente vistos por la funcion listarArchivos for($x=0; $x<count( $files ); $x++){ //Asignamos el valor de la posicion del array a una variable $file $file = $files[$x]; //Si coincide el nombre de la foto en BD con la fisica, asignamos un 1 a $encontrado, si no, se prueba con la siguiente iteración //Si en ninguna de las iteraciones coinciden, $encontrado, sera siendo 0 if($imagen==$file){ $encontrado=1; } } //Si $encontrado sigue siendo 0, es que $imagen y $file no han coincidido nunca, por lo que la foto no existe fisicamente if($encontrado==0){ //Sacamos por pantalla el nombre de la imagen echo "n".$imagen . " - NO ENCONTRADOn"; } } } }// Cerramos funcion listarArchivos //Llamamos a la función listarArchivos pasandole como parametro la ruta a escanear listarArchivos("./fotos"); //Cerramos la conexion con la BD mysql_close($conn); ?> |
1 |