我会试着解释一下。
这段代码:
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。
答案 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。