当前位置:首页 > 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. // 关闭控制到输入流 
  40. fclose($GLOBALS['StdinPointer']); 
  41.  
  42. fwrite($handle, "\r\n"); 
  43. fwrite($handle, '----------------华丽的分隔线-----------------'); 
  44. fwrite($handle, "\r\n"); 
  45.  
  46. ksort($user); 
  47.  
  48. foreach ($user as $k=>$v) { 
  49.  fwrite($handle, $k.' '.$v."\r\n"); 
  50. } 
  51.  
  52. // 关闭文件 
  53. fclose($handle); 
  54.  
  55.  
  56. /** 
  57. * 获取命令行输入值 
  58. * @param string $length 
  59. * @return string 
  60. */ 
  61. function read($length='255'){ 
  62.  if (!isset($GLOBALS['StdinPointer'])){ 
  63.   $GLOBALS['StdinPointer']=fopen("php://stdin","r"); 
  64.  } 
  65.  $line=fgets($GLOBALS['StdinPointer'],$length); 
  66.  return trim($line); 
  67. } 

Tags: PHP英文名随机排号

分享到: