Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/09/2010, 13:51
Avatar de tpzurdo
tpzurdo
 
Fecha de Ingreso: julio-2007
Mensajes: 83
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Eliminar imágenes no utilizadas Dreamweaver

Bueno no es la última ni la primera vez que me respondo a mi mismo.

Me hice un bonito php para hacerlo

Código PHP:
<?php

//Para buscar todas las paginas en el directorio del eliminador
function lee_archivos_filtro ($directorio,$filtro)
{
  
$archs=array();
  
$midir=opendir($directorio);
  
$i=0;
  while(
$archivo=readdir($midir)){
     
$ext=substr($archivo,-4);
     if (!
is_dir($archivo) && ($ext==$filtro || !$filtro))
        
$archs[$i++]=$archivo;
  }
  return 
$archs;
}

function 
lee_archivos($directorio){
  
$archs=array();
  
$midir=opendir($directorio);
  
$i=0;
  while(
$archivo=readdir($midir)){
   if (!
is_dir($archivo))
        
$archs[$i++]=$archivo;
  }
  return 
$archs;
}

//Localice todas las paginas con la extensión para hacer un array con las imagenes utilizadas
$imagenes_usadas=array();
foreach(
lee_archivos_filtro(getcwd(),"html") as $archivo){
    
$fp fopen($archivo"r");
    
$contenido fread($fpfilesize($archivo));
    
preg_match_all('/images\/(.*?)\.(jpg|gif)/'$contenido$coincidencias);
    foreach(
$coincidencias[1] as $indice => $valor){
        
$imagenes_usadas[]=$valor.".".$coincidencias[2][$indice];
    }
    
}
//Elimino los repetidos
$imagenes_usadas=array_unique($imagenes_usadas);

//Chequeo que imagenes están en mi array de usados las que no estan son eliminadas
foreach( lee_archivos("images/") as $imagen){
    if(!
in_array($imagen,$imagenes_usadas)){
        
unlink("images/".$imagen);
    }
}


?>
Si a alguien le sirve... puede preguntar