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 相关文章推荐
文件上传类
Oct 09 PHP
实现dedecms全站URL静态化改造的代码
Mar 29 PHP
php反弹shell实现代码
Apr 22 PHP
php array的学习笔记
May 10 PHP
PHP中time(),date(),mktime()区别介绍
Sep 28 PHP
php中autoload的用法总结
Nov 08 PHP
PHP CURL获取返回值的方法
May 04 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
May 30 PHP
PHP重置数组为连续数字索引的几种方式总结
Mar 12 PHP
laravel5.2表单验证,并显示错误信息的实例
Sep 29 PHP
PHP获取类私有属性的3种方法
Sep 10 PHP
PHP读取文件或采集时解决中文乱码
Mar 09 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
smarty模板嵌套之include与fetch性能测试
2010/12/05 PHP
destoon复制新模块的方法
2014/06/21 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
jQuery 获取对象 基本选择与层级
2010/05/31 Javascript
JS实现简单的Canvas画图实例
2013/07/04 Javascript
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
2014/01/02 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
2014/08/27 Javascript
20条学习javascript的编程规范的建议
2014/11/28 Javascript
bootstrap laydate日期组件使用详解
2017/01/04 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
浅谈vue实现数据监听的函数 Object.defineProperty
2017/06/08 Javascript
jsTree事件和交互以及插件plugins详解
2017/08/29 Javascript
Node.js静态服务器的实现方法
2018/02/28 Javascript
新手必须知的Node.js 4个JavaScript基本概念
2018/09/16 Javascript
详解使用React.memo()来优化函数组件的性能
2019/03/19 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
js实现简单五子棋游戏
2020/05/28 Javascript
ssm+vue前后端分离框架整合实现(附源码)
2020/07/08 Javascript
JavaScript函数柯里化实现原理及过程
2020/12/02 Javascript
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
Python实现的查询mysql数据库并通过邮件发送信息功能
2018/05/17 Python
python之super的使用小结
2018/08/13 Python
使用python 打开文件并做匹配处理的实例
2019/01/02 Python
Flask框架工厂函数用法实例分析
2019/05/25 Python
python通过SSH登陆linux并操作的实现
2019/10/10 Python
联想英国官网:Lenovo英国
2019/07/17 全球购物
幼儿教师自我鉴定
2013/11/02 职场文书
大一自我鉴定范文
2013/12/27 职场文书
互联网创业计划书的书写步骤
2014/01/28 职场文书
函授生自我鉴定
2014/03/25 职场文书
消防安全标语
2014/06/07 职场文书
红色旅游心得体会
2014/09/03 职场文书
2015年外联部工作总结
2015/04/03 职场文书
小学英语听课心得体会
2016/01/14 职场文书
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL