twoixter / ansicolors
一个简洁的库,用于在 CLI PHP 脚本中显示 ANSI 颜色。
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: 4.0.*
This package is not auto-updated.
Last update: 2024-09-28 16:25:44 UTC
README
ansi::[colors] 是一个用于 PHP CLI 应用程序的简单库。为了简洁,它避免了复杂的 ANSI 代码输出方法。
这里的复杂方法是指像这样的东西
<?php $color = new \MyNamespace\ANSISuperClass::color_factory(\MyNamespace::ANSI_RED_COLOR); echo $color->generate_ansi_codes("E"); ?>
你明白我的意思了。我不想使用“FactorySingletonGenerator”来只打印一个红色的“E”。
安装
只需使用 Composer。将其添加到您的 composer.json
{ ... "require" : { .... "twoixter/ansicolors" : "~1.0" } }
或者,您也可以将 lib/ansi.php
文件下载到您自己的源目录中。使用它并准备就绪。
使用方法
ansi:[colors] 使用一个全局类。您不需要实例化它,只需使用它的静态方法。如果 ansi
的名字在您的程序中与某个其他全局类冲突,请重命名您的类。:-)
无参数示例使用
<?php echo ansi::red()."this is red".ansi::reset(); ?>
请注意,如果您不使用参数或调用 ansi::reset()
,则您的文本将永久为红色,即使在退出 PHP 脚本时也是如此。
或者,您可以在方法中放置一些字符串
<?php echo ansi::red("this is red"); # No need to reset ?>
字符串 this is red
将以红色打印,并自动重置到之前的控制台颜色。
可用颜色
可用颜色通常是这些: black
、red
、green
、yellow
、blue
、magenta
、cyan
和 white
。
将它们用作 ansi
类的静态方法
ansi::black(...)
ansi::red(...)
...等等。它们返回包含 ANSI 转义序列的字符串,您必须自己输出它,控制台不会自动输出。
大小写方法
上面的八个颜色名称都是小写的。这是故意的。小写名称颜色很暗淡,而明亮的是 UPPERCASE 或 CamelCased。例如
ansi::White(...) # Bright white. Alternate: ansi::WHITE()
ansi::Red(...) # Bright red. Alternate: ansi::RED()
背景颜色
您不能单独更改背景颜色,您必须使用以下形式添加前景颜色
<? echo ansi::Red_on_white("Yep!"); ?>
字符串 Yep!
将使用亮红色前景颜色和白色背景。背景颜色都是暗淡的,Red_on_White
无效,即使使用全部大写。
您可以使用前景和背景的颜色组合。例如
ansi::Red_on_white(), ansi::White_on_blue(), ansi::Black_on_green()...
命名颜色
ansi::[colors] 支持颜色别名,作为命名颜色。使用 ansi::define("name", "color");
创建新的命名颜色。
示例
<?php # Define some new color names ansi::define("error", "Red_on_white"); ansi::define("success", "Green"); # Definitions can be recursive ansi::define("default", "success"); # Use the new named colors echo ansi::success("The file has been copied successfully!"); echo ansi::error("Watch out! Something went wrong..."); ?>
对管道的支持
ansi:[colors] 足够聪明,会在管道中禁用自己。因此,您可以执行以下操作
$ php myscript.php | less
$ php myscript.php > output_file.txt
您可以确信 ANSI 代码不会破坏您的输出。例如,用于将日志记录到文件或使用 less
进行分页。
许可证
MIT 许可证下发布 -- https://open-source.org.cn/licenses/MIT
如果您喜欢 ansi::[colors],请通过我的 Twitter @twoixter 发送一些欢呼声。如果您发现一些错误,请分支并发送给我一个拉取请求,我对建议持开放态度,除了将类名 ansi
改为大写 Ansi
... (只是开玩笑) :-)