我刚刚找到了这个很棒的教程,因为它是我需要的东西.
但是,看了之后,这似乎效率低下.它的工作方式是,首先生成一个唯一的密钥,然后检查它是否存在于数据库中以确保它确实是唯一的.但是,数据库越大,函数越慢,对吧?
相反,我在想,有没有办法为这个功能添加排序?所以必须要做的就是检查数据库中的上一个条目并增加密钥.所以它永远是独一无二的?
function generate_chars()
{
$num_chars = 4; //max length of random chars
$i = 0;
$my_keys = "123456789abcdefghijklmnopqrstuvwxyz"; //keys to be chosen from
$keys_length = strlen($my_keys);
$url = "";
while($i<$num_chars)
{
$rand_num = mt_rand(1, $keys_length-1);
$url .= $my_keys[$rand_num];
$i++;
}
return $url;
}
function isUnique($chars)
{
//check the uniqueness of the chars
global $link;
$q = "SELECT * FROM `urls` WHERE `unique_chars`='".$chars."'";
$r = mysql_query($q, $link);
//echo mysql_num_rows($r); die();
if( mysql_num_rows($r)>0 ):
return false;
else:
return …Run Code Online (Sandbox Code Playgroud)