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


Posted in PHP onJuly 04, 2014

需求:
1、执行脚本后,想去的同学输入英文名字全拼,产生随机数01-99之间的数字,
数字越大就去参加项目实践,前面已经抓到的数字,下次不能在出现相同数字。
2、第一个输入名字后,屏幕输出信息,并将名字和数字记录到文件里,程序不能退出
继续等待别的学生输入。

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

<?php

// 号码库
$num = range(1, 99);

// 随机打乱
shuffle($num);

$filename = './user.txt';

// 打开记录文件
$handle = fopen($filename, 'w');

// 排序后的用户列表
$user = array();

while (true) {
 echo "\r\nEnter your name:";

 $content = read();

 // exit 退出脚本
 if ($content == 'exit') {
  break;
 }

 // 取出随机值
 $n = array_pop($num);

 // 写入文件
 fwrite($handle, $n.' '.$content."\r\n");

 $user[$n] = $content;

 // 输出到控制台
 echo "Hi $content, your number is " . $n."\r\n";
}

// 关闭控制到输入流
fclose($GLOBALS['StdinPointer']);

fwrite($handle, "\r\n");
fwrite($handle, '----------------华丽的分隔线-----------------');
fwrite($handle, "\r\n");

ksort($user);

foreach ($user as $k=>$v) {
 fwrite($handle, $k.' '.$v."\r\n");
}

// 关闭文件
fclose($handle);


/**
* 获取命令行输入值
* @param string $length
* @return string
*/
function read($length='255'){
 if (!isset($GLOBALS['StdinPointer'])){
  $GLOBALS['StdinPointer']=fopen("php://stdin","r");
 }
 $line=fgets($GLOBALS['StdinPointer'],$length);
 return trim($line);
}
PHP 相关文章推荐
The specified CGI application misbehaved by not returning a complete set of HTTP headers
Mar 31 PHP
JS 网站性能优化笔记
May 24 PHP
基于PHP输出缓存(output_buffering)的深入理解
Jun 13 PHP
解析PHP计算页面执行时间的实现代码
Jun 18 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
Jun 26 PHP
PHP编程中的常见漏洞和代码实例
Aug 06 PHP
两千行代码的PHP学习笔记汇总
Oct 05 PHP
php实现cookie加密的方法
Mar 10 PHP
PHP单例模式详细介绍
Jul 01 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
基于PHP实现用户注册登录功能
Oct 14 PHP
PHP-X系列教程之内置函数的使用示例
Oct 16 PHP
PHP临时文件的安全性分析
Jul 04 #PHP
PHP curl实现抓取302跳转后页面的示例
Jul 04 #PHP
PHP不用递归遍历目录下所有文件的代码
Jul 04 #PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
Jul 04 #PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
Jul 04 #PHP
php+memcache实现的网站在线人数统计代码
Jul 04 #PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
Jul 04 #PHP
You might like
php array_pop()数组函数将数组最后一个单元弹出(出栈)
2011/07/12 PHP
深入理解PHP之数组(遍历顺序)  Laruence原创
2012/06/13 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
2013/02/28 PHP
帝国cms目录结构分享
2015/07/06 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
PHP getDocNamespaces()函数讲解
2019/02/03 PHP
laravel 修改记住我功能的cookie保存时间的方法
2019/10/14 PHP
ajax无刷新动态调用股票信息(改良版)
2008/11/01 Javascript
js 关于=+与+=日期函数使用说明(赋值运算符)
2011/11/15 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
2012/10/11 Javascript
关于jquery css的使用介绍
2013/04/18 Javascript
jQuery Validation PlugIn的使用方法详解
2015/12/18 Javascript
javascript每日必学之循环
2016/02/19 Javascript
iScroll.js 使用方法参考
2016/05/16 Javascript
JS实现AES加密并与PHP互通的方法分析
2017/04/19 Javascript
JS中this的指向以及call、apply的作用
2018/05/06 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
Nodejs封装类似express框架的路由实例详解
2020/01/05 NodeJs
Vue 技巧之控制父类的 slot
2020/02/24 Javascript
extjs4图表绘制之折线图实现方法分析
2020/03/06 Javascript
Vue-resource安装过程及使用方法解析
2020/07/21 Javascript
[06:50]DSPL次级职业联赛十强晋级之路
2014/11/18 DOTA
Python GAE、Django导出Excel的方法
2008/11/24 Python
基于python的Tkinter实现一个简易计算器
2015/12/31 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
python实现任意位置文件分割的实例
2018/12/14 Python
python协程之动态添加任务的方法
2019/02/19 Python
matplotlib 对坐标的控制,加图例注释的操作
2020/04/17 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
Python Selenium模块安装使用教程详解
2020/07/09 Python
Belvilla法国:休闲度假房屋出租
2020/10/03 全球购物
方法名是否可以与构造器的名字相同
2012/06/04 面试题
学校综治宣传月活动总结
2014/07/02 职场文书
大学生预备党员自我评价
2015/03/04 职场文书
JavaScript实例 ODO List分析
2022/01/22 Javascript