PHP实现命令行随机排号系统

宋时安
宋时安
发布时间:2026-10-14| 4人浏览过
原创

利用PHP脚本在命令行中实现学生或成员的随机排号系统,支持01-99不重复数字分配与本地文件持久化存储。

结果与准备

本方案旨在解决需要快速抽取且不重复编号的场景(如课堂互动、项目实践分组)。运行环境需为标准命令行终端,非WEB服务器环境。

第1步:配置号码池与初始化文件

目的:建立可用的数字范围并创建记录载体。

首先使用 range(1, 99) 生成包含1到99整数的数组,随后通过 shuffle($num) 将数组元素彻底打乱,形成随机序列。设定目标文件名为 ./user.txt,并使用 fopen($filename, 'w') 模式打开,清空旧数据准备写入。

<?php
// 号码库
$num = range(1, 99);

// 随机打乱
shuffle($num);
$filename = './user.txt';

// 打开记录文件
$handle = fopen($filename, 'w');
$user = array();
// ... 后续循环逻辑

第2步:构建交互式输入循环

入口:命令行终端。
动作:持续等待用户输入并分配号码。

使用无限循环 while (true) 保持程序不退出。定义辅助函数 read() 用于获取标准输入流(php://stdin)的内容。当输入为 exit 时跳出循环终止程序;否则从被打乱的 $num 数组中取出最后一个元素 array_pop 作为当前用户的唯一编号。

while (true) {
 echo "\r\nEnter your name:";
 $content = read(); // 假设已定义read函数
 
 if ($content == 'exit') {
  break;
 }
 
 // 取出随机值
 $n = array_pop($num);
 // ... 保存逻辑
}

第3步:实时记录与输出反馈

参数:文件名 $filename,句柄 $handle。
完成状态:控制台显示欢迎信息,文件中新增一行记录。

每次分配后,将编号和名字通过 wfwrite 追加写入文件,格式为 编号 名字\r\n。同时在控制台打印反馈,例如 Hi User, your number is 55,便于操作者确认。

$user[$n] = $content;
echo "Hi $content, your number is " . $n."\r\n";

第4步:收尾处理与排序

目的:清理输入流并对数据进行结构化备份。

当循环结束(用户输入 exit),关闭输入流 fclose($GLOBALS['StdinPointer'])。接着写入分隔线以标记正式数据开始。此时内存中的 $user 数组是以随机号为键的,使用 ksort($user) 按键(即编号)从小到大排序,再次遍历并将有序数据写入同一文件,确保最终文本文件是按编号排列的清单。

// 关闭控制到输入流
fclose($GLOBALS['StdinPointer']);

fwrite($handle, "\r\n----------------华丽的分隔线-----------------");
fwrite($handle, "\r\n");

ksort($user);
foreach ($user as $k=>$v) {
 fwrite($handle, $k.' '.$v."\r\n");
}
fclose($handle); // 关闭文件

总结

该脚本展示了 PHP 在处理命令行交互、随机算法以及本地 I/O 操作上的简易实现方式。通过不断从预打乱列表中取值,天然实现了号码的不重复性;配合文件写入功能,使得每一次排号过程都有据可查。以上就是PHP实现的英文名字全拼随机排号脚本的详细内容,更多关于PHP命令行应用开发资料的关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。