twoixter/ansicolors

一个简洁的库,用于在 CLI PHP 脚本中显示 ANSI 颜色。

1.0.1 2014-04-26 23:34 UTC

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 将以红色打印,并自动重置到之前的控制台颜色。

可用颜色

可用颜色通常是这些: blackredgreenyellowbluemagentacyanwhite

将它们用作 ansi 类的静态方法

ansi::black(...)
ansi::red(...)

...等等。它们返回包含 ANSI 转义序列的字符串,您必须自己输出它,控制台不会自动输出。

大小写方法

上面的八个颜色名称都是小写的。这是故意的。小写名称颜色很暗淡,而明亮的是 UPPERCASECamelCased。例如

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... (只是开玩笑) :-)