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 相关文章推荐
实现 win2003 下 mysql 数据库每天自动备份
Dec 06 PHP
PHP XML数据解析代码
May 26 PHP
yii框架中的Url生产问题小结
Jan 16 PHP
浅析PHP编程中10个最常见的错误
Aug 08 PHP
ecshop实现smtp发送邮件
Feb 03 PHP
PHP使用递归生成文章树
Apr 21 PHP
php实现购物车功能(上)
Jul 23 PHP
joomla组件开发入门教程
May 04 PHP
PHP 访问数据库配置通用方法(json)
May 20 PHP
浅谈php调用python文件
Mar 29 PHP
PHP操作XML中XPath的应用示例
Jul 04 PHP
php回调函数处理数组操作示例
Apr 13 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对称加密函数实现数据的加密解密
2016/10/27 PHP
javascript引用对象的方法代码
2007/08/13 Javascript
定义JavaScript二维数组采用定义数组的数组来实现
2012/12/09 Javascript
JavaScript实现x秒后自动跳转到一个页面
2013/01/03 Javascript
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
JavaScript的模块化开发框架Sea.js上手指南
2016/05/12 Javascript
JS中的==运算: [''] == false —&gt;true
2016/07/24 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
分分钟学会vue中vuex的应用(入门教程)
2017/09/14 Javascript
基于Fixed定位的框选功能的实现代码
2019/05/13 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
2019/06/21 Javascript
微信小程序列表时间戳转换实现过程解析
2019/10/12 Javascript
JS实现长图上下滚动效果
2020/03/19 Javascript
python装饰器使用方法实例
2013/11/21 Python
Python设计模式之代理模式实例
2014/04/26 Python
Python标准库与第三方库详解
2014/07/22 Python
python写的一个squid访问日志分析的小程序
2014/09/17 Python
Python中实现的RC4算法
2015/02/14 Python
Python增量循环删除MySQL表数据的方法
2016/09/23 Python
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
使用python自动追踪你的快递(物流推送邮箱)
2020/03/17 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
美国手工艺品市场的领导者:Annie’s
2019/04/04 全球购物
公司年会主持词
2014/03/22 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
办公室文员岗位职责
2015/02/04 职场文书
元宵节寄语大全
2015/02/27 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
不同意离婚答辩状
2015/05/22 职场文书
呐喊读书笔记
2015/06/30 职场文书
安全生产标语口号
2015/12/26 职场文书
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL