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
php设计模式之单例、多例设计模式的应用分析
Jun 30 PHP
php的$_FILES的临时储存文件与回收机制实测过程
Jul 12 PHP
php递归获取目录内文件(包含子目录)封装类分享
Dec 25 PHP
php教程之魔术方法的使用示例(php魔术函数)
Feb 12 PHP
PHP实现远程下载文件到本地
May 17 PHP
基于ThinkPHP实现批量删除
Dec 18 PHP
php简单实现多维数组排序的方法
Sep 30 PHP
注释PHP和html混合代码的小技巧(分享)
Nov 03 PHP
PHP耦合设计模式实例分析
Aug 08 PHP
laravel 框架配置404等异常页面
Jan 07 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
Sep 17 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笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
2015/05/12 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
2016/04/12 PHP
php批量转换文件夹下所有文件编码的函数类
2017/08/06 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
PHP实现正则匹配所有括号中的内容
2018/06/22 PHP
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
javascript动态判断html元素并执行不同的操作
2014/06/16 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
js实现登录验证码
2016/12/22 Javascript
基于javascript的Form表单验证
2016/12/29 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
2018/07/07 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
2018/09/04 Javascript
在vue项目中引用Iview的方法
2018/09/14 Javascript
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
2019/06/18 jQuery
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
Python日志模块logging简介
2015/04/13 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
Python之csv文件从MySQL数据库导入导出的方法
2018/06/21 Python
python实现京东秒杀功能
2018/07/30 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
2019/06/03 Python
python实现共轭梯度法
2019/07/03 Python
python读取多层嵌套文件夹中的文件实例
2020/02/27 Python
html5声频audio和视频video等新特性详细说明
2012/12/26 HTML / CSS
canvas生成带二维码海报的踩坑记录
2019/09/11 HTML / CSS
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
请问如下代码执行后a和b的值分别是什么
2016/05/05 面试题
大学同学聚会邀请函
2014/01/29 职场文书
先进事迹报告会主持词
2014/04/02 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
传承焦裕禄精神思想汇报2014
2014/09/10 职场文书
村主任群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
党支部反对四风思想汇报
2014/10/10 职场文书
辞职信模板(中英文版)
2015/02/27 职场文书
选调生挂职锻炼工作总结
2015/10/23 职场文书