Unique avec rand() ?

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

  • Votes
  • Date
  • Date décroissante
  1. 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;
    	}
    1. 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() ?
      1. Oui, rand() fait une valeur aléatoire mais est ce que c'est possible que une même valeur reviens 2 fois ou plus ?
        1. salut,
          https://www.commentcamarche.net/faq/7070-generer-des-nombres-aleatoires-efficacement-avec-rand