首页 > 开发 > PHP > 正文

PHP批量生成随机用户名

2024-05-04 21:52:55
字体:大 中 小
来源:转载
供稿:网友

PHP批量生成随机用户名,生成6 ~ 16位的用户名若干个,主要是文本操作,同事前提是要有一个字符串包。

主要包含三个程序。

程序一:负责从字典中随机提取数据,写入一个新文件。(1.php)

  1. <?php 
  2. /* 从字典文件中提取随机值 */ 
  3.  
  4. file1 = "./Words.dic"; 
  5. file2 = "./common_pass_mini.dic"; 
  6. file3 = "./Sys_Month_Date.Dic"; 
  7. rfile = "./5.dic"; 
  8. n = 2000; 
  9.  
  10. //提取字典 
  11. basef = file(file1); 
  12. extf = file(file2); 
  13. extf2 = file(file3); 
  14. bf_sum = (count(basef)-1); 
  15. ef_sum = (count(extf)-1); 
  16. ef2_sum =(count(extf2)-1); 
  17.  
  18. //获取随机用户名 
  19. for (i=0; i<n; i++) 
  20. { 
  21. bn = crand(0, bf_sum); 
  22. en = crand(0, ef_sum); 
  23. en2 = crand(0, ef2_sum); 
  24. name = basef[bn]."_".extf[en]; 
  25. name = str_replace("/r/n", "", name); 
  26. all_name[] = name; 
  27. } 
  28.  
  29. //写入文件 
  30. result = implode("/r/n", all_name); 
  31. fp = fopen(rfile, "a+") or die('Open rfile failed'); 
  32. if (fwrite(fp, result)) { 
  33. echo 'Write user succeed!'; 
  34. } else { 
  35. echo 'Write user failed'; 
  36. } 
  37.  
  38. //生成随机数字函数 
  39. function crand(start, end) 
  40. { 
  41. return mt_rand(start, end); 
  42. } 
  43. ?> 

程序二:负责把上面生成的数个文件的结果合并。(2.php)

  1. <?php 
  2. /* 合并所有生成结果 knowsky.com*/ 
  3.  
  4. result_file = "./result.dic"; 
  5.  
  6. fp = fopen(result_file, "a+") or die("Open result_file failed"); 
  7.  
  8. //合并 1.dic ~ 5.dic 
  9. for (i=1; i<=5; i++) 
  10. { 
  11. cur_file = file_get_contents(i.".dic"); 
  12. fwrite(fp, cur_file); 
  13. } 
  14.  
  15. //合并 10.dic ~ 11.dic 
  16. for (i=10; i<=11; i++) 
  17. { 
  18. cur_file = file_get_contents(i.".dic"); 
  19. fwrite(fp, cur_file); 
  20. } 
  21. fclose(fp); 
  22. echo 'Write Succeed'; 
  23.  
  24. ?> 

程序三:负责过滤重复值和不属于 6~16 之间的值并且生成最终结果(3.php)

  1. <?php 
  2. /* 生成最终结果 */ 
  3.  
  4. file = "./result.dic"; 
  5. target = "./target.dic"; 
  6.  
  7. //去掉重复值 
  8. files = file(file); 
  9. files = array_unique(files); 
  10.  
  11. //判断值是不是大于6位小于16位 
  12. sum = count(files); 
  13. for (i=0; i<sum; i++) 
  14. { 
  15. if (strlen(files[i])>=6 && strlen(files[i])<=16) { 
  16. rs[] = files[i]; 
  17. } else { 
  18. continue; 
  19. } 
  20. } 
  21.  
  22. //写入目标文件 
  23. result = implode("", rs); 
  24. fp = fopen(target, "a+") or die("Open target failed"); 
  25. fwrite(fp, result); 
  26. echo 'Write succeed'; 
  27.  
  28. ?> 

搞定,上面生成了 2.7W个随机用户名。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表