Perdon, pero que lime! y que uso de recursos innecesarios... Ponele a la foto un nombre random y es imposible que sean iguales, ahorrate todo esto...
Las expresiones regulares son para situaciones muuuy especiales... No hay que abusar de ellas.
Te paso una funcion mia que uso para exactamente eso, genera una cadena random, y se le pone al archivo ese nombre.
Código PHP:
function randomChain($intChainLength) {
##ARRAY DE NUEROS, MAYUSCULAS Y MINUSCULAS (EN ESTE CASO USO ALFANUMERICO), ~
##SIMPLEMENTE ELIMINAR UN ITEM DEL ARRAY PARA CONVERTIR EN SOLO TEXTO, SOLO NUMERO
$arrChr[0] = 97;
$arrChr[1] = 65;
$arrChr[2] = 48;
$intArrLength = count($arrChr);
for($i=0; $i<$intChainLength; ++$i) {
$intRndChr = $arrChr[mt_rand(0, $intArrLength-1)];
$intRndPlus = mt_rand(0, 25);
if($intArrLength == 3) {
$intRndPlus = mt_rand(0, 9);
}
$strCadena .= chr($intRndChr+$intRndPlus);
}
return $strCadena;
}
$intChainLength es el numero de caracteres que queres ponerle a la foto, con 10 esta bien, las probabilidades de que se repita son infinitas, porque hay mayusculas tambien ;)
Se invocaria asi:
Código PHP:
$strNombreFoto = randomChain(10);
Simple no? Ahorrate dolores de cabeza,
adeus!