我想将随机用户名从Guest <random number =“”>更改为<random word =“”> </random> </random>

时间:2012-12-20 09:13:44

标签: php random

我会试着解释一下。

这段代码:

if (empty($userid)) {
    $random = rand(10000,99999);
    $sql = ("insert into cometchat_guests (name,lastactivity) values ('Guest ".$random."','".getTimeStamp()."')");
    $query = mysql_query($sql);
    $userid = mysql_insert_id();
    setcookie($cookiePrefix.'guest', base64_encode($userid), time()+3600*24*365, "/");
}

return $userid;

这将返回Guest 13245或Guest 85247等的随机用户名。

我想要的是返回Guest Betty,Guest Ghost,Guest Goat或Guest Teapot等。

我如何编辑代码来实现这一目标?

非常感谢你的帮助,我真的很感激。

我试过了:

if (empty($userid)) {
    $random = rand(10000,99999);
    $filename="words.txt";
    $words=file($filename);
    shuffle($words);
    $word=$words[o];
    $sql = ("insert into cometchat_guests (name,lastactivity) values ('Guest ".$word."','".getTimeStamp()."')");
    $query = mysql_query($sql);
    $userid = mysql_insert_id();
    setcookie($cookiePrefix.'guest', base64_encode($userid), time()+3600*24*365, "/");
}

return $userid;

但它没有用lol

回答。对于任何想要这个功能的人来说:

if (empty($userid)) {
    $names= array('Goat', 'Teapot', 'Fuzzyface');
            $random = rand(0,count($names)-1);
            $name= $names[$random];
    $sql = ("insert into cometchat_guests (name,lastactivity) values ('Guest ".mysql_real_escape_string($name)."','".getTimeStamp()."')");
    $query = mysql_query($sql);
    $userid = mysql_insert_id();
    setcookie($cookiePrefix.'guest', base64_encode($userid), time()+3600*24*365, "/");
}

return $userid;

这就是诀窍:)感谢Adder。

4 个答案:

答案 0 :(得分:2)

你需要一本字典才能做到这一点。您可以提供包含单词

的数组
if (empty($userid)) {
    $dictionary = array(0 => 'Betty', 1 => 'Ghost');
    $max = count($dictionary) - 1;
    $random = rand(0, $max);
    $sql = ("insert into cometchat_guests (name,lastactivity) values ('Guest".$random."','".getTimeStamp()."')");
    $query = mysql_query($sql);
    $userid = mysql_insert_id();
    setcookie($cookiePrefix.'guest', base64_encode($userid), time()+3600*24*365, "/");
}

return $userid;

根据需要展开数组。也许有一个额外的字典随机单词你可以在某处下载。当然,如果已经将某个名称提供给某人,您将不得不检查您的号码,以避免重复。

我建议您创建双字而不是最大化单词数量。您可以从此处获取列表:http://www.momswhothink.com/reading/list-of-nouns.html 并使名称始终由2个世界组成,如betty_ghost。您也可以让用户选择前缀,例如“叔叔”,兄弟,先生等 - 或者在该单词上附加一个随机数。有了这些话,你需要注意的是,有些人可能不喜欢他们得到的词 - 而不是使用你的服务。因此,如果他们不喜欢,请允许他们获得新的。

在您添加了文字的上面的代码中,您必须替换

$word=$words[o];

$random = rand(0,count($words) - 1);
$word = $words[$random];

答案 1 :(得分:0)

你可以拥有一个包含随机单词的mysql表。然后你可以随机选择一行并将其用作用户名。 E.g。

if (empty($userid)) {
    $randomSql = "SELECT RANDOM_WORD FROM `random_word_table` ORDER BY RAND() LIMIT 0,1;"
    $randomQuery = mysql_query($randomSql);
    $randomResult = mysql_fetch_row($randomQuery);        

    $sql = ("insert into cometchat_guests (name,lastactivity) values ('Guest ".$randomResult['RANDOM_WORD']."','".getTimeStamp()."')");
    $query = mysql_query($sql);
    $userid = mysql_insert_id();
    setcookie($cookiePrefix.'guest', base64_encode($userid), time()+3600*24*365, "/");
}

return $userid;

答案 2 :(得分:0)

像这样:

$names= array('Ann', 'Betty', 'Charles');
$random = rand(0,count($names)-1);
$name= $names[$random];
$sql = ("insert into cometchat_guests (name,lastactivity) values ('Guest ".mysql_real_escape_string($name)."','".getTimeStamp()."')");

答案 3 :(得分:0)

这是一个独立的函数,可以为您返回一个随机的用户名。当然,您需要向池中添加更多名称以减少名称冲突的可能性。

<?php
function make_random_username() {
    $user_name_pool = array(
        'Ghost',
        'Goat',
        'Teapot'
    );
    $number = rand(0, count($user_name_pool) - 1);
    return 'Guest '.$user_name_pool[$number];
}
?>

如果您不想编写大量用户名,可以使用list of the most common english nouns