当前位置:首页 > PHP教程 > php应用 > 列表

PHP实现的英文名字全拼随机排号脚本

发布:smiling 来源: PHP粉丝网  添加日期:2021-03-12 21:31:42 浏览: 评论:0 

这篇文章主要介绍了PHP实现的英文名字全拼随机排号脚本,根据一个需求写出的一个解决方案,需要的朋友可以参考下

需求:

1、执行脚本后,想去的同学输入英文名字全拼,产生随机数01-99之间的数字,数字越大就去参加项目实践,前面已经抓到的数字,下次不能在出现相同数字。

2、第一个输入名字后,屏幕输出信息,并将名字和数字记录到文件里,程序不能退出继续等待别的学生输入。

实现代码(请在命令行执行,而非WEB环境):

  1. <?php 
  2.  
  3. // 号码库 
  4. $num = range(1, 99); 
  5.  
  6. // 随机打乱 
  7. shuffle($num); 
  8.  
  9. $filename = './user.txt'
  10.  
  11. // 打开记录文件 
  12. $handle = fopen($filename'w'); 
  13.  
  14. // 排序后的用户列表 
  15. $user = array(); 
  16.  
  17. while (true) { 
  18.  echo "\r\nEnter your name:"
  19.  
  20.  $content = read(); 
  21.  
  22.  // exit 退出脚本 
  23.  if ($content == 'exit') { 
  24.   break
  25.  } 
  26.  
  27.  // 取出随机值 
  28.  $n = array_pop($num); 
  29.  
  30.  // 写入文件 
  31.  fwrite($handle$n.' '.$content."\r\n"); 
  32.  
  33.  $user[$n] = $content
  34.  
  35.  // 输出到控制台 
  36.  echo "Hi $content, your number is " . $n."\r\n"
  37.  
  38. // 关闭控制到输入流 
  39. fclose($GLOBALS['StdinPointer']); 
  40.  
  41. fwrite($handle"\r\n"); 
  42. fwrite($handle'----------------华丽的分隔线-----------------'); 
  43. fwrite($handle"\r\n"); 
  44.  
  45. ksort($user); 
  46.  
  47. foreach ($user as $k=>$v) { 
  48.  fwrite($handle$k.' '.$v."\r\n"); 
  49.  
  50. // 关闭文件 
  51. fclose($handle); 
  52.  
  53.  
  54. /** 
  55. * 获取命令行输入值 
  56. * @param string $length 
  57. * @return string 
  58. */ 
  59. function read($length='255'){ 
  60.  if (!isset($GLOBALS['StdinPointer'])){ 
  61.   $GLOBALS['StdinPointer']=fopen("php://stdin","r"); 
  62.  } 
  63.  $line=fgets($GLOBALS['StdinPointer'],$length); 
  64.  return trim($line); 

Tags: PHP英文名随机排号

分享到: