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.

8 réponses

JoBrazil Messages postés 34 Statut Membre 20
 
salut,
https://www.commentcamarche.net/faq/7070-generer-des-nombres-aleatoires-efficacement-avec-rand
0
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
diable2010
 
oui c'est possible
0
mike
 
possible mais peu ,probalble
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
gdfgdfgdfgdfgdf
 
Personne ?...
0
gdfgdfgdfgdfgdf
 
Toujours personne ?
0
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