Jump to content
php.lv forumi

Kā likt randomam neatkārtoties?


test2

Recommended Posts

Tātad problemčiks sekojoš, man ir randfunkcija, kas iedod rand stringu, nosaukumu noteiktai bildei, bet ja nosaukums sakrīt tad bildei ir hanā tā ir baigā problēma man tagad....

		function genRand($length=8) {
	$salt 		= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	$len 		= strlen($salt);
	$makepass	= '';
	mt_srand(10000000*(double)microtime());
	for ($i = 0; $i < $length; $i++)
	$makepass .= $salt[mt_rand(0,$len - 1)];
	return $makepass;
}

To length es esmu uzlicis 60 tagad, bet poļubomu viņš citreiz atļaujas atkārtoties!!! Varbūt es vispār ne to funkciju esmu paņēmis?

Edited by test2
Link to comment
Share on other sites

Nu tad pārbaudi, vai tāds fails jau eksistē :)

function genRand($extension, $length = 8){
$chars = array_merge(range('a','z'), range('A', 'Z'), range(0, 9));
$str = '';
for($i=0; $i<$length; $i++){
	$str.= $chars[array_rand($chars)];
}
return file_exists($str.'.'.$extension) ? genRand($extension, $length) : $str;
}

Link to comment
Share on other sites

kas garantē to, ka md5() pirmie 8 simboli vienmēr būs atšķirīgi?

pārbaudīt vai tāds nosaukums jau izmantots vajag jebkurā gadījumā, ja tiec klāt pie visiem failiem, tad kaut ko šitādu

do {
$filename = getRandomNosaukumuVienalgaArKāduPaņēmienu();
} while(file_exists($filename));

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...