当前位置: 首页 > 图文教程 > 网络编程 > PHP > 使用PHP批量生成随机用户名

PHP
工作笔记:配置MySQL为高可用集群 (1)
MySQL (C API)VC实例及代码下载 (1)(5)
MySQL (C API)VC实例及代码下载 (1)(4)
MySQL (C API)VC实例及代码下载 (1)(3)
MySQL (C API)VC实例及代码下载 (1)(2)
MySQL (C API)VC实例及代码下载 (1)
用JSP连接mysql数据库的方法 (1)(2)
用JSP连接mysql数据库的方法 (1)
MySQL数据库账户授权的相关管理解析 (1)(2)
MySQL数据库账户授权的相关管理解析 (1)
SAP MaxDB MySQL修补数据库严重漏洞
MySQL研发中心成立发布会会后访问整理 (1)(2)
MySQL研发中心成立发布会会后访问整理 (1)
MySQL中SQL-TEXT、DATE和SET数据类型
MySQL存在权限提升及安全限制绕过漏洞
MySQL 卸载的问题
windows下安装、卸载mysql服务
如何正确卸载MySQL
MySQL手册版本 5.0.20-MySQL优化(四) (1)(5)
MySQL手册版本 5.0.20-MySQL优化(四) (1)(4)

使用PHP批量生成随机用户名


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 79 ::
收藏到网摘: n/a

生成6 ~ 16位的用户名若干个,主要是文本操作,同事前提是要有一个字符串包。主要包含三个程序。 程序一:负责从字典中随机提取数据,写入一个新文件。(1.php)
复制代码 代码如下:

<?php
/* 从字典文件中提取随机值 */
$file1 = "./Words.dic";
$file2 = "./common_pass_mini.dic";
$file3 = "./Sys_Month_Date.Dic";
$rfile = "./5.dic";
$n = 2000;
//提取字典
$basef = file($file1);
$extf = file($file2);
$extf2 = file($file3);
$bf_sum = (count($basef)-1);
$ef_sum = (count($extf)-1);
$ef2_sum =(count($extf2)-1);
//获取随机用户名
for ($i=0; $i<$n; $i++)
{
$bn = crand(0, $bf_sum);
$en = crand(0, $ef_sum);
$en2 = crand(0, $ef2_sum);
$name = $basef[$bn]."_".$extf[$en];
$name = str_replace("/r/n", "", $name);
$all_name[] = $name;
}
//写入文件
$result = implode("/r/n", $all_name);
$fp = fopen($rfile, "a+") or die('Open $rfile failed');
if (fwrite($fp, $result)) {
echo 'Write user succeed!';
} else {
echo 'Write user failed';
}
//生成随机数字函数
function crand($start, $end)
{
return mt_rand($start, $end);
}
?>

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

<?php
/* 合并所有生成结果 ruanchen.com*/
$result_file = "./result.dic";
$fp = fopen($result_file, "a+") or die("Open $result_file failed");
//合并 1.dic ~ 5.dic
for ($i=1; $i<=5; $i++)
{
$cur_file = file_get_contents($i.".dic");
fwrite($fp, $cur_file);
}
//合并 10.dic ~ 11.dic
for ($i=10; $i<=11; $i++)
{
$cur_file = file_get_contents($i.".dic");
fwrite($fp, $cur_file);
}
fclose($fp);
echo 'Write Succeed';
?>

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

<?php
/* 生成最终结果 */
$file = "./result.dic";
$target = "./target.dic";
//去掉重复值
$files = file($file);
$files = array_unique($files);
//判断值是不是大于6位小于16位
$sum = count($files);
for ($i=0; $i<$sum; $i++)
{
if (strlen($files[$i])>=6 && strlen($files[$i])<=16) {
$rs[] = $files[$i];
} else {
continue;
}
}
//写入目标文件
$result = implode("", $rs);
$fp = fopen($target, "a+") or die("Open $target failed");
fwrite($fp, $result);
echo 'Write succeed';
?>

基本搞定手工,上面生成了 2.7W个随机用户名,呵呵,保证够你使用。