PHP实现的英文名字全拼随机排号脚本

需求:
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);
}
(0)

相关推荐

  • php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍

    shuffle()定义和用法 shuffle() 函数把数组中的元素按随机顺序重新排列. 若成功,则返回 TRUE,否则返回 FALSE. 注释:本函数为数组中的单元赋予新的键名.这将删除原有的键名而不仅是重新排序. 注释:自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种,现已被自动完成. 语法 shuffle(array) 参数 描述 array 必需.规定要使用的数组. 例子 复制代码 代码如下: <?php $my_array = a

  • php中通过数组进行高效随机抽取指定条记录的算法

    php使用数组array_rand()函数进行高效随机抽取指定条数的记录,可以随机抽取数据库中的记录,适合进行随机展示和抽奖程序. 该算法主要是利用php的array_rand()函数,下面看一下array_rand()函数的主要功能: array_rand-从数组中随机取出一个或多个单元 mixed array_rand(array $input[,int $num_req] ) array_rand()在你想从数组中取出一个或多个随机的单元时相当有用.它接受input作为输入数组和一个可选的

  • PHP生成随机用户名和密码的实现代码

    有时候我们需要在应用程序中使用随机生成用户名和密码,这样可以大大提高应用程序的安全,在PHP中生成随机用户名和密码可以使用 mt_rand 函数或者是 rand 函数, rand 函数在验证码中的应用多一些,而生成长字符的随机码一般都需要 mt_rand 函数. 使用PHP生成随机数可以应用在许多地方,比如可以设计程序的随机密码.模拟掷骰子游戏的应用程序.石头剪子布游戏应用程序等等. 下面是PHP生成随机数的两个函数方法: 复制代码 代码如下: //自动为用户随机生成用户名(长度6-13)   

  • php从数组中随机抽取一些元素的代码

    复制代码 代码如下: <?php class getValues { public function inputValue($inputArray) { $this->inputArray = $inputArray; } public function getValue($number) { $this->number = $number; for($i = 0; $i < $this->number; $i ++) { $index = rand ( 0, count (

  • php随机输出名人名言的代码

    那么这个随机名人名言的功能是如何实现的呢? 其实很简单,只需要一个字符串变量,这里面放所有要随机展现的名人名言,然后用到explode函数分解成数组,再用rand随机数生成一个值,输出这个数组中的某一句. 直接上代码: says.php 复制代码 代码如下: <?php function random_str () { $poems="人生的价值,并不是用时间,而是用深度去衡量的.-- 列夫·托尔斯泰 三人行,必有我师焉.择其善者而从之,其不善者而改之.--孔子 人生不是一种享乐,而是一桩

  • php产生随机数的两种方法实例代码 输出随机IP

    分享下php生成随机数的三种方法,生成1-10之间的不重复随机数,php生成不重复随机数的例子,需要的朋友参考下. 如何用php生成1-10之间的不重复随机数? 例1,使用shuffle函数生成随机数. <?php $arr=range(1,10); shuffle($arr); foreach($arr as $values) { echo $values." "; } ?> 例2,使用array_unique函数生成随机数. <?php $arr=array();

  • 用php随机生成福彩双色球号码的2种方法

    不瞒您说,俺也是个双色球爱好者,经常买,但迟迟没有中过一等奖,哈哈.这里为大家介绍用php随机生成福彩双色球号码的二种方法,供朋友们学习参考.新的一年,祝大家中大奖,发大财. 方法一 复制代码 代码如下: <?php/*随机生成福彩双色球号码*/$red = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33);$blue = array(1,2,3,4,5

  • 超级好用的一个php上传图片类(随机名,缩略图,加水印)

    Upimages.class.php php上传类 复制代码 代码如下: <?php class UpImages { var $annexFolder = "upload";//附件存放点,默认为:annex var $smallFolder = "small";//缩略图存放路径,注:必须是放在 $annexFolder下的子目录,默认为:smallimg var $markFolder = "mark";//水印图片存放处 var $

  • PHP实现的英文名字全拼随机排号脚本

    需求: 1.执行脚本后,想去的同学输入英文名字全拼,产生随机数01-99之间的数字, 数字越大就去参加项目实践,前面已经抓到的数字,下次不能在出现相同数字. 2.第一个输入名字后,屏幕输出信息,并将名字和数字记录到文件里,程序不能退出 继续等待别的学生输入. 实现代码(请在命令行执行,而非WEB环境): <?php // 号码库 $num = range(1, 99); // 随机打乱 shuffle($num); $filename = './user.txt'; // 打开记录文件 $han

  • C# 汉字转拼音(全拼和首字母)实例

    (一)将汉字转化成全拼代码: 复制代码 代码如下: private void button1_Click(object sender, EventArgs e)    {        this.textBox2.Text = Hz2Py.Convert(this.textBox1.Text);    } 汉字转拼音类: 复制代码 代码如下: /// <summary>    /// 汉字转拼音类    /// </summary>    public class Hz2Py   

  • Java获取汉字拼音的全拼和首拼实现代码分享

    import java.util.Collections; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; /** * 将汉字转化为全拼 */ public class CnToSpell1 { private static Map<String, Integer> spellMap = null; //存放生僻字和其拼音的Map private static Map<Cha

  • java 获取中文拼音首字母及全拼的实践

    使用Hutool工具类 官网链接 以下为Hutool支持的拼音库的pom坐标,你可以选择任意一个引入项目中,如果引入多个,Hutool会按照以上顺序选择第一个使用. <dependency> <groupId>io.github.biezhi</groupId> <artifactId>TinyPinyin</artifactId> <version>2.0.3.RELEASE</version> </depende

  • VISTA下使用XP全拼输入法的办法

    先copy windows xp 下的 "WINPY.IME" "WINPY.MB" 到vista 下的"windows/system32 目录下. 将下面的注册表信息写入txt文本  并将文件改名为"*.reg" Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0010

  • Java获取汉字对应的拼音(全拼或首字母)

    Java 根据汉语字符串获得对应的拼音字符串或者拼音首字母字符串等操作,需要添加jar包: 引入pinyin4j-2.5.0.jar包 代码实现: import java.util.regex.Matcher; import java.util.regex.Pattern; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; im

  • Python实现将不规范的英文名字首字母大写

    例如 输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart']. 方法一 def wgw(x): return [x[0].upper(),x[1:].lower()] map(wgw,['adam','LISA','barT']) 方法二 def wgw1(x): return x.capitalize() map(wgw1,['adam','LISA','barT']) 方法三 map(lambda x:x.capitalize(),['

  • asp.net(C#)把汉字转化成全拼音函数(全拼)

    复制代码 代码如下: /// <summary> /// 把汉字转换成拼音(全拼) /// </summary> /// <param name="hzString">汉字字符串</param> /// <returns>转换后的拼音(全拼)字符串</returns> public static string ConvertE(string hzString) { // 匹配中文字符 Regex regex = n

  • java中文转全拼工具类分享

    复制代码 代码如下: import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;import net.so

  • SQL 根据汉字获取全拼的代码

    复制代码 代码如下: /* SQL 根据汉字获取全拼(有些字还没有添加上去,请自已加上去,涂聚文注) 生成所有读音临时表 根据Chinese_PRC_CS_AS_KS_WS 排序获取读音 geovindu@163.com 2009-12-2 其它功能請商討,我是在繁體的環境測試,簡體會更方便一些. */ if exists(select 1 from sysobjects where name = 'f_GetPy' and xtype = 'FN') drop function f_GetPy

随机推荐