Puede que esto tenga que ver con la version de PHP? En servidor remoto tengo 5.1.x y en local 5.2.9
Publico partes de mi script:
Código PHP:
...
// solo numero letras y guiones bajos
$nombre_limpio = preg_replace("/[^a-zA-Z0-9s]/", "_", $nombre);
if($es_album)
$nombre_disponible = checkear_preexistencia($nombre_limpio, $extension, $album_id);
else
$nombre_disponible = $nombre_limpio;
$nuevo_nombre = $nombre_disponible . "." . $extension;
...
Código PHP:
function checkear_preexistencia($nombre_nuevo, $extension, $album_id)
{
$carpeta = FOTOS.$album_id."/";
$i = 1;
while(true){
$archivo = $nombre_nuevo . '-' . $i . '.' . $extension;
if( !file_exists( $carpeta . $archivo ) ){
return $nombre_nuevo.'-'.$i;
}
$i++;
}
}