charm / terminal
Requires
- charm/options: >=1.0.6
- charm/util-phpencode: >=1.0.2
README
Charm\Terminal
是一个用于在解析标记语言的同时写入流的类。
通过在输出中添加一个非常简单的标记语言,以最少的额外工作生成漂亮的、有帮助的命令行输出。这大大简化了在终端中处理颜色的工作。
- 标签的作用类似于 HTML,除了它们的开始标签是
<!TAG-NAME>
,结束标签是<!>
。 - 可以使用
<!yellow underline>example<!>
将多个标签组合成一个。 - 标签可以嵌套。
- 当客户端未使用 TTY 时,不会发送 CSI 代码 - 这意味着您的输出只有在交互式使用时才会具有颜色。
- 标签可以用反斜杠转义,如
\<!this>
示例
$term = new Charm\Terminal(STDERR);
// Clear the screen
$term->write('<!clear>');
// Write "Hello World"
$term->write('<!bwhite>Hello<!> <!underline>World<!>\n');
描述
(new Charm\Terminal($stream))->write($output);
将 output 的内容写入由 stream 指向的文件流。
参数
stream
一个文件系统指针资源,通常是 PHP 常量 STDERR
或 STDOUT
。
output
您希望打印的带标记的文本。
返回值
不返回任何内容
标签参考
|---------------|-----------------------------------------------------------------| | 标签 | 描述 | |---------------|-----------------------------------------------------------------| | bold | 使文本 粗体 | | italic | 使文本 斜体 | | underline | 使文本下划线 | | strikeThrough | 使文本 删除线 | | blink | 使文本缓慢闪烁 | | fastblink | 使文本快速闪烁 | | clear | 清除整个终端窗口 | | home | 将光标移至第 1 行,第 1 列 | | clear-line | 清除光标所在行的整个行 | | clear-left | 清除光标左侧的行 | | clear-right | 清除光标右侧的行 | | pos(L, C) | 将光标移至第 L 行,第 C 列 | | negative | 反转前景色和背景色 | |---------------|-----------------------------------------------------------------|
颜色参考
|------------------|----------------|---------------------------------------------| | 标准颜色 | 亮色 | 描述 | |------------------|----------------|---------------------------------------------| | black | grey | 黑色和灰色 | | silver | white | 白色和亮白色 | | maroon | red | 红色和亮红色 | | green | lime | 绿色和亮绿色 | | olive | yellow | 黄色和亮黄色 | | navy | blue | 蓝色和亮蓝色 | | puple | fuchsia | 紫色和亮紫色 | | teal | aqua | 青绿色和亮青绿色 | | silver | white | 白色和亮白色 | |------------------|----------------|---------------------------------------------|
注意!支持的颜色完整列表可以在
src/Info/Color.php
中找到。
可以通过在颜色后缀添加 BG
或 Background
来设置背景颜色
$term->write("<!redBG white> This is white on red <!>");
示例
示例 #1 面向对象的使用
$terminal = new Charm\Terminal(STDOUT);
$terminal->write("<!red>This text is <!white underline>WHITE WITH UNDERLINE<!> wrapped in red<!>");
示例 #2 函数使用
Charm\term_write(STDOUT, "<!red>This will be <!underline green>green underlined<!!>");
注意
标签 <!>
将关闭上一个标签。如果您想一次关闭 3 个标签,请使用 <!!!>
。