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和ACCESS写聊天室(一)
Oct 09 PHP
[转帖]PHP世纪万年历
Dec 06 PHP
深入PHP nl2br()格式化输出的详解
Jun 05 PHP
去除php注释和去除空格函数分享
Mar 13 PHP
PHP利用MySQL保存session的实现思路及示例代码
Sep 09 PHP
PHP基于CURL进行POST数据上传实例
Nov 10 PHP
使用PHP生成二维码的方法汇总
Jul 22 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
Oct 10 PHP
ThinkPHP路由机制简介
Mar 23 PHP
php中的抽象方法和抽象类
Feb 14 PHP
PHP简单读取xml文件的方法示例
Apr 20 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
Jun 05 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
晶体管单管来复再生式收音机
2021/03/02 无线电
一个PHP日历程序
2006/12/06 PHP
PHP模板引擎Smarty的缓存使用总结
2014/04/24 PHP
Yii中的relations数据关联查询及统计功能用法详解
2016/07/14 PHP
smarty模板的使用方法实例分析
2019/09/18 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
你真的了解JavaScript吗?
2007/02/24 Javascript
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
纯JavaScript实现的完美渐变弹出层效果代码
2010/04/02 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
jQuery之尺寸调整组件的深入解析
2013/06/19 Javascript
JavaScript中json使用自己总结
2013/08/13 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
学习JavaScript鼠标响应事件
2015/12/25 Javascript
javascript insertAfter()定义与用法示例
2016/07/25 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
jquery对象与DOM对象转化
2017/02/08 Javascript
Bootstrap table 定制提示语的加载过程
2017/02/20 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
vue生命周期的探索
2019/04/03 Javascript
详解vue的数据劫持以及操作数组的坑
2019/04/18 Javascript
vuejs实现下拉框菜单选择
2020/10/23 Javascript
快速解决jupyter启动卡死的问题
2020/04/10 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
2020/04/30 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
python中yield的用法详解
2021/01/13 Python
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
乌克兰最大的家用电器和电子产品连锁店:Eldorado
2019/10/02 全球购物
TecoBuy澳大利亚:在线电子和小工具商店
2020/06/25 全球购物
公司董事长职责
2013/12/12 职场文书
美术指导助理求职信
2014/04/20 职场文书
竞聘演讲稿开场白
2014/08/25 职场文书
罚站检讨书
2015/01/29 职场文书
社区法制宣传日活动总结
2015/05/05 职场文书
锦旗赠语
2015/06/23 职场文书