技术饭
PHP生成随机英文用户名
最近用wordpress来做英文的博客,需要虚构一些随机的英文用户名来冒充访客发表评论,因为对PHP不熟悉(压根没学过),只能在百度和google查找方法。办法有2个:
1、随机字母数字组合法
这个方法的思路:26个字母大小写 +10个数字(0~9) 随机组合成6到10个的字符串最为用户名,代码如下:
function random_user($len = 8)
{
$user = '';
$lchar = 0;
$char = 0;
for($i = 0; $i < $len; $i++)
{
while($char == $lchar)
{
$char = rand(48, 109);
if($char > 57) $char += 7;
if($char > 90) $char += 6;
}
$user .= chr($char);
$lchar = $char;
}
return $user;
}
调用方法(默认生成8个字符串):
<?php echo random_user();?>
生产的英文用户名如下:
4c3yXssf,6IG0bdfa,u5NDh5d3,spBhdgPn,49otf8ub,NE8zg2dS
缺点很明显:不靠谱,可读性差,一看就知道是代码生成的。
2、字典随机组合法
方法思路:找出外国人最常用的姓(Most Common Surnames),最常用的名(Most Common Male Names,Most Common Female Names),再随机组合成一个常用的英文用户名。
function random_user()
{
$male_names=array("James","John","Robert","Michael","William","David","Richard","Charles","Joseph","Thomas","Christopher","Daniel","Paul","Mark","Donald","George","Kenneth","Steven","Edward");
$famale_names = array("Mary","Patricia","Linda","Barbara","Elizabeth","Jennifer","Maria","Susan","Margaret","Dorothy","Lisa","Nancy","Karen","Betty","Helen","Sandra","Donna","Carol","Ruth");
$surnames =array("Smith","Jones","Taylor","Williams","Brown","Davies","Evans","Wilson","Thomas","Roberts","Johnson","Lewis","Walker","Robinson","Wood","Thompson","White","Watson","Jackson");
$frist_num = mt_rand(0,19);
$sur_num = mt_rand(0,19);
$type = rand(0,1);
if($type==0){
$username=$male_names[$frist_num]." ".$surnames[$sur_num];
} else {
$username=$famale_names[$frist_num]." ".$surnames[$sur_num];
}
return $username;
}
这里使用了20个常用男性名,20常用个女性名,20个常用的姓来组合用户名,如果需要更多的数据可以看看这里:外国人最常用的100个姓,最常用的100个名。
调用的方法和上面是一样的,生成的英文用户名如下:
Mary Williams,Daniel Johnson,John Jones,Maria Evans,Donna Smith,Barbara Smith
可以看出这个方法生成的英文用户名很靠谱,可读性高,而且可生成数量众多(20*20+20*20 共800个)。最后我也是使用了这个函数。
外国人最常用的100个姓(100 Most Common Surnames):
1  | Smith  | 51  | Bailey  | 
2  | Jones  | 52  | Parker  | 
3  | Taylor  | 53  | Miller  | 
4  | Williams  | 54  | Davis  | 
5  | Brown  | 55  | Murphy  | 
6  | Davies  | 56  | Price  | 
7  | Evans  | 57  | Bell  | 
8  | Wilson  | 58  | Baker  | 
9  | Thomas  | 59  | Griffiths  | 
10  | Roberts  | 60  | Kelly  | 
11  | Johnson  | 61  | Simpson  | 
12  | Lewis  | 62  | Marshall  | 
13  | Walker  | 63  | Collins  | 
14  | Robinson  | 64  | Bennett  | 
15  | Wood  | 65  | Cox  | 
16  | Thompson  | 66  | Richardson  | 
17  | White  | 67  | Fox  | 
18  | Watson  | 68  | Gray  | 
19  | Jackson  | 69  | Rose  | 
20  | Wright  | 70  | Chapman  | 
21  | Green  | 71  | Hunt  | 
22  | Harris  | 72  | Robertson  | 
23  | Cooper  | 73  | Shaw  | 
24  | King  | 74  | Reynolds  | 
25  | Lee  | 75  | Lloyd  | 
26  | Martin  | 76  | Ellis  | 
27  | Clarke  | 77  | Richards  | 
28  | James  | 78  | Russell  | 
29  | Morgan  | 79  | Wilkinson  | 
30  | Hughes  | 80  | Khan  | 
31  | Edwards  | 81  | Graham  | 
32  | Hill  | 82  | Stewart  | 
33  | Moore  | 83  | Reid  | 
34  | Clark  | 84  | Murray  | 
35  | Harrison  | 85  | Powell  | 
36  | Scott  | 86  | Palmer  | 
37  | Young  | 87  | Holmes  | 
38  | Morris  | 88  | Rogers  | 
39  | Hall  | 89  | Stevens  | 
40  | Ward  | 90  | Walsh  | 
41  | Turner  | 91  | Hunter  | 
42  | Carter  | 92  | Thomson  | 
43  | Phillips  | 93  | Matthews  | 
44  | Mitchell  | 94  | Ross  | 
45  | Patel  | 95  | Owen  | 
46  | Adams  | 96  | Mason  | 
47  | Campbell  | 97  | Knight  | 
48  | Anderson  | 98  | Kennedy  | 
49  | Allen  | 99  | Butler  | 
50  | Cook  | 100  | Saunders  | 
美国人最常用的100个男性名(100 Most Common Male Names):
1  | James  | 51  | Joe  | 
2  | John  | 52  | Juan  | 
3  | Robert  | 53  | Jack  | 
4  | Michael  | 54  | Albert  | 
5  | William  | 55  | Jonathan  | 
6  | David  | 56  | Justin  | 
7  | Richard  | 57  | Terry  | 
8  | Charles  | 58  | Gerald  | 
9  | Joseph  | 59  | Keith  | 
10  | Thomas  | 60  | Samuel  | 
11  | Christopher  | 61  | Willie  | 
12  | Daniel  | 62  | Ralph  | 
13  | Paul  | 63  | Lawrence  | 
14  | Mark  | 64  | Nicholas  | 
15  | Donald  | 65  | Roy  | 
16  | George  | 66  | Benjamin  | 
17  | Kenneth  | 67  | Bruce  | 
18  | Steven  | 68  | Brandon  | 
19  | Edward  | 69  | Adam  | 
20  | Brian  | 70  | Harry  | 
21  | Ronald  | 71  | Fred  | 
22  | Anthony  | 72  | Wayne  | 
23  | Kevin  | 73  | Billy  | 
24  | Jason  | 74  | Steve  | 
25  | Matthew  | 75  | Louis  | 
26  | Gary  | 76  | Jeremy  | 
27  | Timothy  | 77  | Aaron  | 
28  | Jose  | 78  | Randy  | 
29  | Larry  | 79  | Howard  | 
30  | Jeffrey  | 80  | Eugene  | 
31  | Frank  | 81  | Carlos  | 
32  | Scott  | 82  | Russell  | 
33  | Eric  | 83  | Bobby  | 
34  | Stephen  | 84  | Victor  | 
35  | Andrew  | 85  | Martin  | 
36  | Raymond  | 86  | Ernest  | 
37  | Gregory  | 87  | Phillip  | 
38  | Joshua  | 88  | Todd  | 
39  | Jerry  | 89  | Jesse  | 
40  | Dennis  | 90  | Craig  | 
41  | Walter  | 91  | Alan  | 
42  | Patrick  | 92  | Shawn  | 
43  | Peter  | 93  | Clarence  | 
44  | Harold  | 94  | Sean  | 
45  | Douglas  | 95  | Philip  | 
46  | Henry  | 96  | Chris  | 
47  | Carl  | 97  | Johnny  | 
48  | Arthur  | 98  | Earl  | 
49  | Ryan  | 99  | Jimmy  | 
50  | Roger  | 100  | Antonio  | 
美国人最常用的100个女性名(100 Most Common Female Names):
1  | Mary  | 51  | Alice  | 
2  | Patricia  | 52  | Julie  | 
3  | Linda  | 53  | Heather  | 
4  | Barbara  | 54  | Teresa  | 
5  | Elizabeth  | 55  | Doris  | 
6  | Jennifer  | 56  | Gloria  | 
7  | Maria  | 57  | Evelyn  | 
8  | Susan  | 58  | Jean  | 
9  | Margaret  | 59  | Cheryl  | 
10  | Dorothy  | 60  | Mildred  | 
11  | Lisa  | 61  | Katherine  | 
12  | Nancy  | 62  | Joan  | 
13  | Karen  | 63  | Ashley  | 
14  | Betty  | 64  | Judith  | 
15  | Helen  | 65  | Rose  | 
16  | Sandra  | 66  | Janice  | 
17  | Donna  | 67  | Kelly  | 
18  | Carol  | 68  | Nicole  | 
19  | Ruth  | 69  | Judy  | 
20  | Sharon  | 70  | Christina  | 
21  | Michelle  | 71  | Kathy  | 
22  | Laura  | 72  | Theresa  | 
23  | Sarah  | 73  | Beverly  | 
24  | Kimberly  | 74  | Denise  | 
25  | Deborah  | 75  | Tammy  | 
26  | Jessica  | 76  | Irene  | 
27  | Shirley  | 77  | Jane  | 
28  | Cynthia  | 78  | Lori  | 
29  | Angela  | 79  | Rachel  | 
30  | Melissa  | 80  | Marilyn  | 
31  | Brenda  | 81  | Andrea  | 
32  | Amy  | 82  | Kathryn  | 
33  | Anna  | 83  | Louise  | 
34  | Rebecca  | 84  | Sara  | 
35  | Virginia  | 85  | Anne  | 
36  | Kathleen  | 86  | Jacqueline  | 
37  | Pamela  | 87  | Wanda  | 
38  | Martha  | 88  | Bonnie  | 
39  | Debra  | 89  | Julia  | 
40  | Amanda  | 90  | Ruby  | 
41  | Stephanie  | 91  | Lois  | 
42  | Carolyn  | 92  | Tina  | 
43  | Christine  | 93  | Phyllis  | 
44  | Marie  | 94  | Norma  | 
45  | Janet  | 95  | Paula  | 
46  | Catherine  | 96  | Diana  | 
47  | Frances  | 97  | Annie  | 
48  | Ann  | 98  | Lillian  | 
49  | Joyce  | 99  | Emily  | 
50  | Diane  | 100  | Robin  | 
            
        
                    
        
文明上网理性发言!