Unique avec rand() ?

gdfgdfgdfgdfgdf -  
Atropa Messages postés 2051 Statut Membre -
Bonjour, est ce que la fonction PHP rand() génère une code unique et qui sera repris ?

Merci d'avance.
Configuration: Windows 7
Firefox 3.5.6

8 réponses

  1. JoBrazil Messages postés 34 Statut Membre 20
     
    salut,
    https://www.commentcamarche.net/faq/7070-generer-des-nombres-aleatoires-efficacement-avec-rand
    0
  2. gdfgdfgdfgdfgdf
     
    Oui, rand() fait une valeur aléatoire mais est ce que c'est possible que une même valeur reviens 2 fois ou plus ?
    0
  3. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  4. gdfgdfgdfgdfgdf
     
    Ok, donc pour un script d'hébergement d'images, au moment du renommage de l'image (pour évité que si une image a le même nom que un autre déjà héberger sa la remplace par l'ancienne), je peux utiliser rand() ?
    0
  5. Atropa Messages postés 2051 Statut Membre 274
     
    bonsoir,

    tu peux faire ça par exemple pour avoir des nom plus propres et être certain que tu n'aura pas 2 fois le même

    	function fileRename($fileName) {
    		if(is_file($fileName)) {
    			$ext = strrchr($fileName,'.');
    			$fileName = substr($fileName,0,'-'.strlen($ext));
    			$ext = strtolower(substr($ext,1));
    			for($i=1;is_file($fileName.$i.'.'.$ext);$i++);
    			return $fileName .$i.'.'.$ext;
    		}
    		else return $fileName;
    	}


    sinon avec rand il vaut mieux faire a peu près la même chose pour en être certain comme ça par exemple :

    	function fileRename($fileName) {
    		if(is_file($fileName)) {
    			$ext = strrchr($fileName,'.');
    			$fileName = substr($fileName,0,'-'.strlen($ext));
    			$ext = strtolower(substr($ext,1));
    			do $tempName = $fileName.mt_rand().'.'.$ext;
    			while(is_file($tempName));
    			return $tempName;
    		}
    		else return $fileName;
    	}
    0