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版(3)
Oct 09 PHP
PHP数据缓存技术
Feb 14 PHP
PHP安全配置详细说明
Sep 26 PHP
使用PHP获取当前url路径的函数以及服务器变量
Jun 29 PHP
php的array数组和使用实例简明教程(容易理解)
Mar 20 PHP
PHP+AJAX实现投票功能的方法
Sep 28 PHP
php使用ffmpeg获取视频信息并截图的实现方法
May 03 PHP
PHP new static 和 new self详解
Feb 19 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
Feb 20 PHP
微信支付之JSAPI公众号支付详解
May 15 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
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
IIS环境下快速安装、配置和调试PHP5.2.0
2006/12/17 PHP
php数组中删除元素之重新索引的方法
2014/09/16 PHP
php获取指定范围内最接近数的方法
2015/06/02 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
Zend Framework处理Json数据方法详解
2016/12/09 PHP
php桥接模式应用案例分析
2019/10/23 PHP
js日历功能对象
2012/01/12 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
Jquery操作cookie记住用户名
2016/03/29 Javascript
Boostrap实现的登录界面实例代码
2016/10/09 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
ES6新特性七:数组的扩充详解
2017/04/21 Javascript
Vue 拦截器对token过期处理方法
2018/01/23 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
基于webpack4+vue-cli3项目实现换肤功能
2019/07/17 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
js页面加载后执行的几种方式小结
2020/01/30 Javascript
微信小程序去除左上角返回键的实现方法
2020/03/06 Javascript
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
js实现带箭头的进度流程
2020/03/26 Javascript
JavaScript数组排序的六种常见算法总结
2020/08/18 Javascript
[54:02]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 IG vs VGJ.T
2018/04/03 DOTA
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
详解python中的文件与目录操作
2017/07/11 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
2019/09/11 Python
Python解释器以及PyCharm的安装教程图文详解
2020/02/26 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
2020/05/15 Python
CSS改变网页中鼠标选中文字背景颜色例子
2014/04/23 HTML / CSS
一款纯css3实现的tab选项卡的实列教程
2014/12/11 HTML / CSS
使用css实现android系统的loading加载动画
2019/07/25 HTML / CSS
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么 问题?char *p; *p = malloc(10);
2016/10/06 面试题
团结演讲稿范文
2014/05/23 职场文书
发展党员工作情况汇报
2014/10/28 职场文书