tags:

views:

77

answers:

6

is any ability to create keys like in youtube (nWChTnkVdKE)?

A: 

From comments on here:

<?php 
function generateRandStr($length){ 
      $randstr = ""; 
      for($i=0; $i<$length; $i++){ 
         $randnum = mt_rand(0,61); 
         if($randnum < 10){ 
            $randstr .= chr($randnum+48); 
         }else if($randnum < 36){ 
            $randstr .= chr($randnum+55); 
         }else{ 
            $randstr .= chr($randnum+61); 
         } 
      } 
      return $randstr; 
   } 
?> 

Simply use: 
generateRandStr(10); 

Sample output: $%29zon(4f

You can mess around with this function to generate just alphanumeric, or just alphabetic characters.

Chetan
A: 

For most purposes uniqid will suffice, if you need to make sure there's absolutely no clash, more convoluted measures are necessary.

Wrikken
+7  A: 

Take a look at this tutorial:

Sarfraz
+1  A: 

See Sean Coates' Blog:

I wanted the URL shortener to make the shortest possible URLs. To keep the number of characters in a URL short, I had to increase the set of characters that could comprise a key.

and also the article linked within:

On a sidenote, this has likely been answered before

Gordon
A: 

Hi, all the methods above are good but make sure you know and not assume the generated string is unique. What I have done in the past is made a recursive function that checks the string against my database and if it is unique it returns the value, otherwise it just runs again. This will hardly happen though depending how long your unique string is. Its just good to know its unique.

Darren
A: 

Use whichever you like :-)

// Generates Alphanumeric Output

function generateRandomID() {
    // http://mohnish.in
    $required_length = 11;
    $limit_one = rand();
    $limit_two = rand();
    $randomID = substr(uniqid(sha1(crypt(md5(rand(min($limit_one, $limit_two), max($limit_one, $limit_two)))))), 0, $required_length);
    return $randomID;
}

// Generates only alphabetic output

function anotherRandomIDGenerator() {
    // Copyright: http://snippets.dzone.com/posts/show/3123
    $len = 8;
    $base='ABCDEFGHKLMNOPQRSTWXYZabcdefghjkmnpqrstwxyz';
    $max=strlen($base)-1;
    $activatecode='';
    mt_srand((double)microtime()*1000000);
    while (strlen($activatecode)<$len+1)
    $activatecode.=$base{mt_rand(0,$max)};
    return $activatecode;
}
MT