使用PHP批量生成隨機用戶名

使用PHP批量生成隨機用戶名生成6 ~ 16位的用戶名若干個,主要是文本操作,同事前提是要有一個字符串包,主要包含三個程序,都有哪些?

使用PHP批量生成隨機用戶名

  程序一:負責從字典中隨機提取數據,寫入一個新文件。()

複製代碼 代碼如下:

<?php

/* 從字典文件中提取隨機值 */

$file1 = "./";

$file2 = "./common_pass_";

$file3 = "./Sys_Month_";

$rfile = "./";

$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);

}

?>

  程序二:負責把上面生成的'數個文件的結果合併。()

複製代碼 代碼如下:

<?php

/* 合併所有生成結果 */

$result_file = "./";

$fp = fopen($result_file, "a+") or die("Open $result_file failed");

//合併 ~

for ($i=1; $i<=5; $i++)

{

$cur_file = file_get_contents($i."");

fwrite($fp, $cur_file);

}

//合併 ~

for ($i=10; $i<=11; $i++)

{

$cur_file = file_get_contents($i."");

fwrite($fp, $cur_file);

}

fclose($fp);

echo 'Write Succeed';

?>

  程序三:負責過濾重複值和不屬於 6~16 之間的值並且生成最終結果()

複製代碼 代碼如下:

<?php

/* 生成最終結果 */

$file = "./";

$target = "./";

//去掉重複值

$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';

?>