| 关键词: 程序 生成 随机 用户名 面生 结果 文件 一个 php 字符串 |
生成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(" ", "", $name);$all_name[] = $name;}//写入文件$result = implode(" ", $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/* 合并所有生成结果 knowsky.com*/$result_file = "./result.dic";$fp = fopen($result_file, "a+") or die("Open $result_file failed");//合并 1.dic ~ 5.dicfor ($i=1; $i<=5; $i++){$cur_file = file_get_contents($i.".dic");fwrite($fp, $cur_file);}//合并 10.dic ~ 11.dicfor ($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个随机用户名,呵呵,保证够你使用。 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|