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实现的获取URL信息的类
Jan 02 PHP
PHP音乐采集(部分代码)
Feb 14 PHP
PHP 单引号与双引号的区别
Nov 24 PHP
php 高效率写法 推荐
Feb 21 PHP
解析PHP中intval()等int转换时的意外异常情况
Jun 21 PHP
Zend studio文件注释模板设置方法
Sep 29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
Jun 23 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
Jul 08 PHP
CI框架支持$_GET的两种实现方法
May 18 PHP
PHP数据的提交与过滤基本操作实例详解
Nov 11 PHP
PHP批量获取网页中所有固定种子链接的方法
Nov 18 PHP
Yii2实现增删改查后留在当前页的方法详解
Jan 13 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版本号
2006/10/09 PHP
如何在PHP程序中防止盗链
2008/04/09 PHP
Linux下将excel数据导入到mssql数据库中的方法
2010/02/08 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
Prototype Date对象 学习
2009/07/12 Javascript
完美实现仿QQ空间评论回复特效
2015/05/06 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
JS碰撞运动实现方法详解
2016/12/15 Javascript
vue2.0 computed 计算list循环后累加值的实例
2018/03/07 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
JS实现密码框效果
2020/09/10 Javascript
vue穿梭框实现上下移动
2021/01/29 Vue.js
python将html转成PDF的实现代码(包含中文)
2013/03/04 Python
理解python多线程(python多线程简明教程)
2014/06/09 Python
Python3基础之输入和输出实例分析
2014/08/18 Python
深入讲解Java编程中类的生命周期
2016/02/05 Python
简单掌握Python的Collections模块中counter结构的用法
2016/07/07 Python
python 中的list和array的不同之处及转换问题
2018/03/13 Python
python使用tornado实现登录和登出
2018/07/28 Python
Python双链表原理与实现方法详解
2020/02/22 Python
在python中list作函数形参,防止被实参修改的实现方法
2020/06/05 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
施华洛世奇澳大利亚官网:SWAROVSKI澳大利亚
2017/01/06 全球购物
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
linux面试相关问题
2013/04/28 面试题
学生喝酒检讨书
2014/02/06 职场文书
电台编导求职信
2014/05/06 职场文书
中学教师师德承诺书
2014/05/23 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
先进基层党组织事迹材料
2014/12/25 职场文书
管辖权异议上诉状
2015/05/23 职场文书
重阳节座谈会主持词
2015/07/03 职场文书
教你用Python写一个植物大战僵尸小游戏
2021/04/25 Python
详解Mysql数据库平滑扩容解决高并发和大数据量问题
2022/05/25 MySQL