新闻详情

新闻详情

首页 / 资讯中心 / 详情

PHP命令行脚本与进程管理

发布时间:2026/9/1 7:07:55来源:尧图网络
PHP命令行脚本与进程管理
PHP命令行脚本与进程管理PHP不仅做Web开发也适合写命令行脚本。定时任务、数据处理、队列消费都用得上。命令行参数解析。phpecho 脚本名: {$argv[0]}\n;echo 参数个数: $argc\n;for ($i 1; $i $argc; $i) {echo 参数{$i}: {$argv[$i]}\n;}$options getopt(u:p:h:, [host:, port:, help]);if (isset($options[help])) {echo 用法: php script.php -u 用户名 -p 密码\n;echo -u 用户名\n;echo -p 密码\n;echo --host 主机名\n;echo --port 端口\n;exit(0);}$username $options[u] ?? null;$password $options[p] ?? null;$host $options[h] ?? $options[host] ?? localhost;?彩色输出让CLI工具的提示信息更醒目。phpclass Console{const COLORS [red \033[31m, green \033[32m, yellow \033[33m,blue \033[34m, reset \033[0m,];public static function info(string $message): void{echo self::COLORS[green] . [INFO] . self::COLORS[reset] . $message . \n;}public static function error(string $message): void{echo self::COLORS[red] . [ERROR] . self::COLORS[reset] . $message . \n;}public static function warning(string $message): void{echo self::COLORS[yellow] . [WARNING] . self::COLORS[reset] . $message . \n;}public static function progressBar(int $current, int $total, int $width 50): void{$percent round($current / $total * 100);$filled round($width * $current / $total);$bar str_repeat(, $filled) . str_repeat( , $width - $filled);printf(\r进度: [%s] %d%% (%d/%d), $bar, $percent, $current, $total);if ($current $total) echo \n;}public static function table(array $headers, array $rows): void{$widths [];foreach ($headers as $i $header) {$widths[$i] strlen($header);foreach ($rows as $row) $widths[$i] max($widths[$i], strlen((string)($row[$i] ?? )));}$sep . implode(, array_map(fn($w) str_repeat(-, $w 2), $widths)) . ;echo $sep . \n;echo | . implode( | , array_map(fn($h, $i) str_pad($h, $widths[$i]), $headers, array_keys($headers))) . |\n;echo $sep . \n;foreach ($rows as $row) {echo | . implode( | , array_map(fn($v, $i) str_pad((string)$v, $widths[$i]), $row, array_keys($row))) . |\n;}echo $sep . \n;}}Console::info(系统启动);Console::warning(磁盘空间不足);Console::error(连接失败);Console::table([ID, 姓名, 状态], [[1, 张三, 活跃], [2, 李四, 离线]]);for ($i 1; $i 100; $i) {Console::progressBar($i, 100);usleep(30000);}?多进程可以并行处理任务充分利用多核CPU。phpfunction parallelProcess(array $tasks, int $workerCount 4): void{$chunks array_chunk($tasks, ceil(count($tasks) / $workerCount));$children [];foreach ($chunks as $chunkId $taskList) {$pid pcntl_fork();if ($pid -1) die(fork失败);elseif ($pid 0) {foreach ($taskList as $task) {echo Worker $chunkId 处理: $task\n;sleep(1);}exit(0);} else {$children[] $pid;}}foreach ($children as $pid) {pcntl_waitpid($pid, $status);echo 进程 $pid 已退出\n;}}$tasks range(1, 20);parallelProcess($tasks, 4);?命令行脚本在PHP开发中占有一席之地。定时任务用cron加PHP脚本数据处理用管道重定向队列消费用守护进程模式。掌握了命令行开发PHP的应用场景就不局限于Web了。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

王者荣耀S35赛季双冰流凯皇出装攻略:控制与生存的极致平衡 2026/9/2 1:38:36

王者荣耀S35赛季双冰流凯皇出装攻略:控制与生存的极致平衡

在王者荣耀的S35赛季,随着装备系统的调整和英雄玩法的不断开发,一些曾经冷门的出装思路正焕发出新的活力。近期,一位国服顶尖的凯玩家在巅峰赛2300分的高端局中,凭借一套“双冰流”出装大杀四方,甚至在对阵国服雅典娜时…

阅读更多 →
基于多智能体协作的长时视频理解:StreamArena思想与Python工程实践 2026/9/2 1:38:36

基于多智能体协作的长时视频理解:StreamArena思想与Python工程实践

在实际 AI 和计算机视觉项目中,处理短视频片段已经相对成熟,但面对长达数十分钟甚至数小时的视频内容时,如何让模型真正“理解”其连贯的叙事、复杂的事件演变和丰富的细节,一直是一个巨大的挑战。传统的视频理解模型往往受限于计…

阅读更多 →
CAIL司法AI竞赛数据包全解析:从解压到Baseline实战指南 2026/9/2 1:38:36

CAIL司法AI竞赛数据包全解析:从解压到Baseline实战指南

简介:中国法研杯司法人工智能挑战赛(CAIL2018-2020)的Python代码与模型配置包,面向法律NLP研究者、算法工程师及参赛选手,覆盖罪名预测、法条推荐、刑期预测与法律问答等典型任务,可作为司法智能模型快速搭…

阅读更多 →
QQ机器人定时任务开发:从@Scheduled到XXL-Job的完整实践指南 2026/9/2 1:38:36

QQ机器人定时任务开发:从@Scheduled到XXL-Job的完整实践指南

凌晨八点,群里没有出现预期的早报消息。第一眼你会怀疑 cron 表达式写错了,或者服务器时区不对。打开日志一看,任务明明执行了,方法也跑了,可消息就是没有出现在用户那边。这种问题在 QQ 机器人定时任务开发里很常见&a…

阅读更多 →
openEuler 22.03 LTS SP3内网离线升级包制作与实操指南 2026/9/2 1:38:36

openEuler 22.03 LTS SP3内网离线升级包制作与实操指南

简介:面向 openEuler 22.03 LTS 系列运维与升级场景,这份离线升级包专注于解决从 SP1 升级到 SP3 时依赖项难以收集的痛点。包内依赖已预先处理完毕,并在全新安装的 openEuler-22.03-LTS-SP1 系统上完成验证,适合内网隔离、无法访…

阅读更多 →
Graph Engineering:把Agent的SOP画成图,让流程自己跑 2026/9/2 1:35:36

Graph Engineering:把Agent的SOP画成图,让流程自己跑

最近团队在做一个客服工单自动处理 Agent,最早的写法很直觉:把整套处理规范写成一段超长 prompt,让大模型按顺序执行。单条测试时效果不错,并发一上来问题就开始冒头——有的工单漏掉了必做核验,有的在同一个分支里反复…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞