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系统流量分析的程序
Oct 09 PHP
模仿OSO的论坛(三)
Oct 09 PHP
php 删除无限级目录与文件代码共享
Nov 22 PHP
php 动态添加记录
Mar 10 PHP
PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
Apr 01 PHP
PHP中比较两个字符串找出第一个不同字符位置例子
Apr 08 PHP
thinkphp学习笔记之多表查询
Jul 28 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
Jul 28 PHP
微信access_token的获取开发示例
Apr 16 PHP
Yii中的relations数据关联查询及统计功能用法详解
Jul 14 PHP
PHP基于SPL实现的迭代器模式示例
Apr 22 PHP
PHP示例演示发送邮件给某个邮箱
Apr 03 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 管理系统程序中的后门
2009/08/05 PHP
php制作中间带自己定义图片二维码的方法
2014/01/27 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
Codeigniter的一些优秀特性总结
2015/01/21 PHP
dojo 之基础篇
2007/03/24 Javascript
jquery动态加载js三种方法实例
2013/08/03 Javascript
js获取url中的参数且参数为中文时通过js解码
2014/03/19 Javascript
Javascript学习笔记之 对象篇(一) : 对象的使用和属性
2014/06/24 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
2016/06/21 Javascript
socket.io学习教程之基础介绍(一)
2017/04/29 Javascript
纯js实现画一棵树的示例
2017/09/05 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
浅谈在react中如何实现扫码枪输入
2018/07/04 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
2020/08/27 Javascript
Python实现的下载网页源码功能示例
2017/06/13 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
详解Python匿名函数(lambda函数)
2019/04/19 Python
python交易记录链的实现过程详解
2019/07/03 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
Python开发.exe小工具的详细步骤
2021/01/27 Python
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
酒店总经理欢迎词
2014/01/08 职场文书
贯彻学习两会心得体会范文
2014/03/17 职场文书
公民授权委托书
2014/10/15 职场文书
领导干部个人整改措施落实情况汇报
2014/10/29 职场文书
单位证明范文
2015/06/18 职场文书
详解SpringBoot异常处理流程及原理
2021/06/21 Java/Android
SQL实现LeetCode(175.联合两表)
2021/08/04 MySQL
Vue elementUI表单嵌套表格并对每行进行校验详解
2022/02/18 Vue.js
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
2022/04/07 Servers
教你nginx跳转配置的四种方式
2022/07/07 Servers