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 相关文章推荐
php中设置多级目录session的问题
Aug 08 PHP
phpmyadmin config.inc.php配置示例
Aug 27 PHP
PHP弹出提示框并跳转到新页面即重定向到新页面
Jan 24 PHP
php获取QQ头像并显示的方法
Dec 23 PHP
php简单实现屏蔽指定ip段用户的访问
Apr 29 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
Dec 14 PHP
Yii中实现处理前后台登录的新方法
Dec 28 PHP
PHP实现查询两个数组中不同元素的方法
Feb 23 PHP
php网页版聊天软件实现代码
Aug 12 PHP
Ajax和PHP正则表达式验证表单及验证码
Sep 24 PHP
利用PHP生成CSV文件简单示例
Dec 21 PHP
PHP实现合并两个排序链表的方法
Jan 19 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下通过QRCode类库创建中间带网站LOGO的二维码
2014/07/12 PHP
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
PHP获取指定月份第一天和最后一天的方法
2015/07/18 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
2016/03/01 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
js跨域问题浅析及解决方法优缺点对比
2014/11/08 Javascript
纯Javascript实现ping功能的方法
2015/03/20 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
2017/05/03 Javascript
JS实现的计数排序与基数排序算法示例
2017/12/04 Javascript
element中Steps步骤条和Tabs标签页关联的解决
2020/12/08 Javascript
[02:22]2018DOTA2亚洲邀请赛VG赛前采访
2018/04/03 DOTA
二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
2013/12/03 Python
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
Python 字符串操作方法大全
2014/03/11 Python
通过C++学习Python
2015/01/20 Python
Python 正则表达式入门(初级篇)
2016/12/07 Python
对Python3 序列解包详解
2019/02/16 Python
Python时间和字符串转换操作实例分析
2019/03/16 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
Python中的 ansible 动态Inventory 脚本
2020/01/19 Python
Giglio美国站:意大利奢侈品购物网
2018/02/10 全球购物
经济学人订阅:The Economist
2018/07/19 全球购物
关于递归的一道.NET面试题
2013/05/12 面试题
军训 自我鉴定
2014/02/03 职场文书
《狼》教学反思
2014/03/02 职场文书
个人求职自荐信范文
2014/06/20 职场文书
简历中自我评价范文
2015/03/11 职场文书
合作意向书怎么写
2019/06/24 职场文书
前端监听websocket消息并实时弹出(实例代码)
2021/11/27 Javascript