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伪静态页面函数附使用方法
Jun 20 PHP
sourcesafe管理phpproj文件的补充说明(downmoon)
Apr 11 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
May 12 PHP
ThinkPHP3.1新特性之Action参数绑定
Jun 19 PHP
Laravel5中contracts详解
Mar 02 PHP
php打造智能化的柱状图程序,用于报表等
Jun 19 PHP
PHP使用ODBC连接数据库的方法
Jul 18 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
Jul 01 PHP
thinkphp跨库操作的简单代码实例
Sep 22 PHP
PHP安装BCMath扩展的方法
Feb 13 PHP
laravel 数据验证规则详解
Oct 23 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
Apr 07 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 session 预定义数组
2009/03/16 PHP
屏蔽机器人从你的网站搜取email地址的php代码
2012/11/14 PHP
9个JavaScript评级/投票插件
2010/01/18 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
Javascript实现计算个人所得税
2015/05/10 Javascript
javascript常用的方法分享
2015/07/01 Javascript
javascript实现树形菜单的方法
2015/07/17 Javascript
jQuery序列化表单成对象的简单实现
2016/11/29 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
2017/08/06 Javascript
基于require.js的使用(实例讲解)
2017/09/07 Javascript
Angular6 用户自定义标签开发的实现方法
2019/01/08 Javascript
微信小程序实现的一键复制功能示例
2019/04/24 Javascript
Layui实现带查询条件的分页
2019/07/27 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
[00:43]FTP典藏礼包 DOTA2三大英雄霸气新套装
2014/03/21 DOTA
[57:55]EG vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python定时采集摄像头图像上传ftp服务器功能实现
2013/12/23 Python
python 字符串常用方法汇总详解
2019/09/16 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
2020/02/11 Python
Python-split()函数实例用法讲解
2020/12/18 Python
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
HTML5 Canvas 实现圆形进度条并显示数字百分比效果示例
2017/08/18 HTML / CSS
全球知名巧克力品牌:Godiva
2016/07/22 全球购物
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
广告学毕业生求职信
2014/01/30 职场文书
安全教育实施方案
2014/03/02 职场文书
大学生交通专业求职信
2014/09/01 职场文书
校园广播稿100字
2014/10/06 职场文书
社团个人总结范文
2015/03/05 职场文书
2015年行政人事工作总结
2015/05/21 职场文书
2015初中团委工作总结
2015/07/28 职场文书
2016高考寄语集锦
2015/12/04 职场文书
python数字类型和占位符详情
2022/03/13 Python