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与MySQL开发中页面乱码的产生与解决
Mar 27 PHP
PHP中全面阻止SQL注入式攻击分析小结
Jan 30 PHP
VB中的RasEnumConnections函数返回632错误解决方法
Jul 29 PHP
php中动态修改ini配置
Oct 14 PHP
php实现读取内存顺序号
Mar 29 PHP
PHP输入流php://input实例讲解
Dec 22 PHP
PHP如何实现跨域
May 30 PHP
thinkPHP中钩子的两种配置调用方法详解
Nov 11 PHP
浅谈PHP中try{}catch{}的使用方法
Dec 09 PHP
php实现的统计字数函数定义与使用示例
Jul 26 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
php记录搜索引擎爬行记录的实现代码
Mar 02 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验证码的实现原理 附php验证码小案例
2016/08/17 PHP
如何打开php的gd2库
2017/02/09 PHP
php实现的二叉树遍历算法示例
2017/06/15 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
javascript中xml操作实现代码
2011/11/21 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
JS交换变量的方法
2015/01/21 Javascript
浅谈$(document)和$(window)的区别
2015/07/15 Javascript
判断数组是否包含某个元素的js函数实现方法
2016/05/19 Javascript
Bootstrap3制作搜索框样式的方法
2016/07/11 Javascript
关于js原型的面试题讲解
2016/09/25 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
vue.js源代码core scedule.js学习笔记
2017/07/03 Javascript
underscore之Chaining_动力节点Java学院整理
2017/07/10 Javascript
Vue.js实现可排序的表格组件功能示例
2019/02/19 Javascript
vue中多路由表头吸顶实现的几种布局方式
2019/04/12 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
jQuery 选择方法及$(this)用法实例分析
2020/05/19 jQuery
VUE前端从后台请求过来的数据进行转换数据结构操作
2020/11/11 Javascript
[43:35]TI4 循环赛第二日Liquid vs Fnatic
2014/07/11 DOTA
Python用zip函数同时遍历多个迭代器示例详解
2016/11/14 Python
python定时按日期备份MySQL数据并压缩
2019/04/19 Python
python禁用键鼠与提权代码实例
2019/08/16 Python
Python的Lambda函数用法详解
2019/09/03 Python
Python3爬虫里关于Splash负载均衡配置详解
2020/07/10 Python
CSS超出文本指定宽度用省略号代替和文本不换行
2016/05/05 HTML / CSS
html5通过canvas实现刮刮卡效果示例分享
2014/01/27 HTML / CSS
英国运动风奢侈品购物网站:Maison De Fashion
2020/08/28 全球购物
大学新生军训感言
2014/02/25 职场文书
婚纱摄影师求职信
2014/03/07 职场文书
电大毕业个人生自我鉴定
2014/03/26 职场文书
谢师宴学生答谢词
2015/09/30 职场文书
OpenCV绘制圆端矩形的示例代码
2021/08/30 Python