Tengo un script definitivo, es el de antes, pero probado y sin fallos (lo tengo en un servidor no-rancio que no da problemas con las funciones, no hay que poner @

):
Código PHP:
$path = "imagenes";
$dir = @opendir($path);
$diaInic=29;
$mesInic=01;
$anoInic=2004;
class Fecha {
var $fecha;
function Fecha($a=0,$m=0,$d=0) {
if ($a==0) $a=Date("Y");
if ($m==0) $m=Date("m");
if ($d==0) $d=Date("d");
$this -> fecha = Date("Ymd",mktime(0,0,0,$m,$d,$a));
}
function SumaTiempo($a=0,$m=0,$d=0) {
$ano=substr($this->fecha,0,4);
$mes=substr($this->fecha,4,2);
$dia=substr($this->fecha,6,2);
$this->fecha=Date("Ymd",mktime(0,0,0,$mes+$m,$dia+$d,$ano+$a));
}
function getFecha() {
return $this->fecha;
}
}
srand((double)microtime()*1000000);
$abc="abcdefghijklmnopqrstuvwxyz01234567890";
function nombreAleat() {
global $abc; $devolver=""; $long=rand(5,20);
for($a=0;$a<=$long;$a++) {
$devolver.=$abc[rand(0,strlen($abc))];
}
return $devolver;
}
$dia=new Fecha($anoInic,$mesInic,$diaInic);
$codigo="\$archivoImg=Array();<br>";
$cont=0;
while ($elemento = @readdir($dir)) {
$fich=$path."/".$elemento;
if(strpos($fich,".jpg")) { //es jpg
echo "<b>".$fich."</b>";
$nuevoNombre=@nombreAleat();
$ren=@rename($fich,$path."/".$nuevoNombre.".jpg");
echo " es renombrado a <b>".$path."/".$nuevoNombre.".jpg</b> (ren=".$ren.")<br>";
$cont++;
$codigo.="\$archivoImg[".$dia->getFecha()."]='".$nuevoNombre."';<br>";
$dia->SumaTiempo(0,0,1);
}
else {
echo $fich." no es renombrado, no es jpg<br>";
}
}
echo "<p><h3>RESULTADO DEL DIRECTORIO:</h3>";
@closedir($dir);
$dir = @opendir($path);
while ($elemento = @readdir($dir)) {
$fich=$path."/".$elemento;
echo $fich."<br>";
}
@closedir($dir);
echo "<hr><hr>";
echo "<h3>codigo generado:</h3>".$codigo;
Ya esta, los nombres de las imagenes aleatorias y renombradas, y el codigo listo para hacer un array-archivo de imagenes.
Parece bueno, si no puedo hacer otro mejor, la solucion perfecta no?
A ver si me lo superais

:P
un saludo a todos los que prestan ayuda incondicional!