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 curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
Apr 07 PHP
php中经典方法实现判断多维数组是否为空
Oct 23 PHP
php采集文章中的图片获取替换到本地(实现代码)
Jul 08 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
May 20 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
Feb 08 PHP
php封装的验证码类分享
Feb 26 PHP
总结的一些PHP开发中的tips(必看篇)
Mar 24 PHP
PHP数组内存利用率低和弱类型详细解读
Aug 10 PHP
PHP实现通过CURL上传文件功能示例
May 30 PHP
浅谈PHP封装CURL
Mar 06 PHP
PHP命名空间定义与用法实例分析
Aug 14 PHP
Laravel获取所有的数据库表及结构的方法
Oct 10 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检测用户当前使用的浏览器是否为IE浏览器
2013/12/03 PHP
smarty获得当前url的方法分享
2014/02/14 PHP
php的declare控制符和ticks教程(附示例)
2014/03/21 PHP
功能强大的php文件上传类
2016/08/29 PHP
PHPExcel在linux环境下导出报500错误的解决方法
2017/01/26 PHP
PHP中一个有趣的preg_replace函数详解
2018/08/15 PHP
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
jquery的$(document).ready()和onload的加载顺序
2010/05/26 Javascript
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
更换select下拉菜单背景样式的实现代码
2011/12/20 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
jquery分割字符串的方法
2015/06/24 Javascript
详解jQuery Mobile自定义标签
2016/01/06 Javascript
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
微信小程序 购物车简单实例
2016/10/24 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
Node.js实现发送邮件功能
2017/11/06 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
js通过canvas生成图片缩略图
2020/10/02 Javascript
使用wxPython获取系统剪贴板中的数据的教程
2015/05/06 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
2019/12/04 Python
Python使用扩展库pywin32实现批量文档打印实例
2020/04/09 Python
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
Nanushka官网:匈牙利服装品牌
2019/08/14 全球购物
美国最大的户外装备和服装购物网站:Backcountry
2019/10/15 全球购物
继电保护工岗位职责
2014/01/05 职场文书
销售简历自我评价
2014/01/24 职场文书
剪彩仪式主持词
2014/03/19 职场文书
宪法宣传周工作方案
2014/05/26 职场文书
迎新生标语大全
2014/10/06 职场文书
2015国庆节感想
2015/08/04 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书
护士年终工作总结不会写?各科护士模板总结
2020/01/02 职场文书
php中pcntl_fork详解
2021/04/01 PHP
关于CentOS 8 搭建MongoDB4.4分片集群的问题
2021/10/24 MongoDB