南端点 / ansi
PHP 中创建 ANSI 转义码的库
dev-main
2023-11-09 15:06 UTC
Requires
- php: >= 8.1
Requires (Dev)
- ext-posix: *
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ~10.0
- symfony/var-dumper: ^6
This package is auto-updated.
Last update: 2024-09-09 16:58:02 UTC
README
此库可以让你轻松在 CLI 中生成 ANSI 序列字符串。
以下是一些你可以使用此库做的事情。
- 设置前景/背景颜色
- 设置字体样式(粗体/斜体)
- 移动光标位置
- 清屏
- 获取终端大小
先决条件
- PHP 8.1+
安装
composer require south-pointe/ansi
示例
use SouthPointe\Ansi\Ansi; use SouthPointe\Ansi\Codes\Color; // Change foreground text to blue. echo Ansi::fgColor(Color::Blue); // Set color by 256-color mode. echo Ansi::fgColor(Color::code(12)); // Move the cursor back by 2. echo Ansi::cursorBack(2); // Add "test" + "\e[0m" (reset style) + "\r" (carriage return) + "\n" (new line) echo Ansi::line('test'); // Ansi::buffer() will allow you to chain multiple sequences. echo Ansi::buffer() ->bold() ->fgColor(Color::Gray) ->text('foo bar') ->resetStyle() ->toString(); // Will send the string to STDOUT (default stream uri) echo Ansi::stream() ->text('to stdout') ->flush(); // Will send the string to STDERR echo Ansi::stream(STDERR) ->bgColor(Color::Red) ->flush(); // Returns the size of the terminal as ['row' => int, 'column' => int]. echo Ansi::getTerminalSize();
方法
Ansi
这是你应使用的主要类来生成序列代码。
此类中的所有方法都是静态的。
Ansi::buffer(): Buffer开始一个缓冲实例。用于链式调用序列。Ansi::line($text): string输出文本,重置样式,并移动到新行。Ansi::bell(): string使铃声响起。Ansi::backspace(): string将光标向后移动。Ansi::tab(): string将光标移动8个空格。Ansi::lineFeed(): string移动到下一行并向上滚动屏幕。Ansi::carriageReturn(): string将光标移动到列0。Ansi::cursorUp(int $n = 1): string将光标向上移动$n行。Ansi::cursorDown(int $n = 1): string将光标向下移动$n行。Ansi::cursorForward(int $n = 1): string将光标向前移动$n单元。Ansi::cursorBack(int $n = 1): string将光标向后移动$n单元。Ansi::cursorNextLine(int $n = 1): string将光标移动到行首并向下移动$n。Ansi::cursorPreviousLine(int $n = 1): string将光标移动到行首并向上移动$n。Ansi::cursorPosition(int $row, int $column): string将光标移动到指定位置。Ansi::eraseScreen(): string清除整个屏幕。Ansi::eraseToEndOfScreen(): string从光标位置清除到屏幕末尾。Ansi::eraseFromStartOfScreen(): string从屏幕开头清除到光标位置。Ansi::eraseSavedLines(): string清除屏幕并删除滚动缓冲区中的所有行。Ansi::eraseLine(): string清除整行。光标位置不会改变。Ansi::eraseToEndOfLine(): string从光标位置清除到行末。Ansi::eraseFromStartOfLine(): string从行首清除到光标位置。Ansi::scrollUp(int $lines = 1): string向上滚动屏幕$lines行。Ansi::scrollDown(int $lines = 1): string向下滚动屏幕$lines行。Ansi::resetStyle(): string重置输出样式。Ansi::bold(bool $toggle = true): string对后续文本应用粗体样式。Ansi::italic(bool $toggle = true): string对后续文本应用斜体样式。Ansi::underline(bool $toggle = true): string对后续文本应用下划线。Ansi::blink(bool $toggle = true): string使后续文本闪烁。Ansi::foreground(Color $color): string将给定颜色应用到前景字体。Ansi::foreground(Color $color): string将给定颜色应用到背景字体。Ansi::deviceStatusReport(): string提供设备状态报告。Ansi::getTerminalSize(): array{ row: int, column: int }获取当前终端的终端大小。
Buffer
应通过调用
Ansi::buffer()来实例化此类。
缓冲类包含Ansi类中除getTerminalSize以外的所有方法。
text(string $text): self将文本添加到缓冲区。flush(resource $to): self将所有缓冲的序列刷新到指定的资源。clear(): self清除缓冲区中存储的所有序列。toString(): string将所有缓冲的序列转换为字符串。
颜色
包含8位颜色快捷名称的枚举。
查看所有名称的实际类。
Color::code(int $code): self通过数字获取颜色。
许可证
这是一个开源软件,受MIT许可证许可。