Segun mi experiencia lo mejor en este caso es utilizar una base de datos, ya que guardas el nombre del archivo original, y ademas renombras la imagen completa, asi nunca se va a repetir el nombre utilizando alguna funcion del tipo time(), pero si lo que necesitas es justamente eso, creo que esto te podria servir:
Código PHP:
<?php
$directorio_archivo = "./subir-fotos-personal/"; // tipo /home/user/public_html/archivos/
$nombre = time() . strtr($_FILES['archivo']['name'], "ñ'ÁÉÍÓÚÀÈÌÒÙáéíóúäëïöüàèìòù123456789012345678 90", "n-AEIOUAEIOUaeiouaeiouaeiou");
$tamanio = $_FILES['archivo']['size'];
$tipo = $_FILES['archivo']['type'];
if(!is_file($directorio_archivo.$nombre)) {
copy($_FILES['archivo']['tmp_name'], $directorio_archivo.$nombre);
echo "Click en el siguiente enlace para finalizar el envio de tu foto <br>";
}
else echo "Este nombre de archibo ya existe.Ya existe una foto con ese nombre.Cambia el nombre del archibo para poder enviar la foto.Gracias.";
?>