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 14 PHP
PHP中最容易忘记的一些知识点总结
Apr 28 PHP
php数组转换js数组操作及json_encode的用法详解
Oct 26 PHP
php构造函数实例讲解
Nov 13 PHP
PHP base64编码后解码乱码的解决办法
Jun 19 PHP
ThinkPHP字符串函数及常用函数汇总
Jul 18 PHP
Yii的CDbCriteria查询条件用法实例
Dec 04 PHP
php生成圆角图片的方法
Apr 07 PHP
php实现数组重复数字统计实例
Sep 30 PHP
PHP递归统计系统中代码行数
Sep 19 PHP
php 函数中静态变量使用的问题实例分析
Mar 05 PHP
laravel admin实现分类树/模型树的示例代码
Jun 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
雄兵连:天使彦天使彦为爱折翼,彦和炙心同时念动的誓言!
2020/03/02 国漫
PHP设计模式之结构模式的深入解析
2013/06/13 PHP
ThinkPHP中的三大自动简介
2014/08/22 PHP
PHP生成制作验证码的简单实例
2016/06/12 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
JavaScript Archive Network 集合
2007/05/12 Javascript
Mootools 1.2教程 选项卡效果(Tabs)
2009/09/15 Javascript
JavaScript实现GriwView单列全选(自写代码)
2013/05/13 Javascript
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
IScroll5 中文API参数说明和调用方法
2016/05/21 Javascript
Web打印解决方案之普通报表打印功能
2016/08/29 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
js最简单的双向绑定实例讲解
2018/01/02 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
2018/01/23 jQuery
Vue中用props给data赋初始值遇到的问题解决
2018/11/27 Javascript
laypage+SpringMVC实现后端分页
2019/07/27 Javascript
vue中created和mounted的区别浅析
2019/08/13 Javascript
原生JS与CSS实现软件卸载对话框功能
2019/12/05 Javascript
[01:18]PWL开团时刻DAY10——一拳超人
2020/11/11 DOTA
快速了解Python相对导入
2018/01/12 Python
Python pymongo模块用法示例
2018/03/31 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
详解python里的命名规范
2018/07/16 Python
python 实现对文件夹中的图像连续重命名方法
2018/10/25 Python
利用Tensorflow的队列多线程读取数据方式
2020/02/05 Python
银行门卫岗位职责
2013/12/29 职场文书
英文请假条
2014/04/11 职场文书
群众路线查摆问题整改措施
2014/10/10 职场文书
2014年护士长工作总结
2014/11/11 职场文书
怎么写工作检讨书
2014/11/16 职场文书
升职感谢领导的话语及升职感谢信
2019/06/24 职场文书
python批量更改目录名/文件名的方法
2021/04/18 Python
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL
聊聊Lombok中的@Builder注解使用教程
2021/11/17 Java/Android
分析SQL窗口函数之排名窗口函数
2022/04/21 Oracle