malenki/ansi

为您的 CLI PHP 应用程序添加一些颜色的简单类!

1.2.6 2014-03-03 12:56 UTC

This package is not auto-updated.

Last update: 2024-09-20 21:27:22 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

在 PHP 终端应用程序中使用颜色和样式!

快速示例以了解

use Malenki\Ansi;

$a = new Ansi('Hello World!');
echo $a->red->bold->underline; // you get string in red color, bold and underline! :)

这只是一个小示例,请阅读此文档中的全部内容以了解如何使用 Ansi!您可以按需使用方法或魔法获取器,并且方法可以链式调用。

安装它

您可以通过从 github 克隆此存储库或使用 composer 来获取代码。Ansi 可在 Packagist 上使用!

因此,要使用 composer 安装它,只需将类似以下行放入您自己的 composer.json 项目文件中

{
    "require": {
        "malenki/ansi": "1.2.6",
    }
}

玩转它

它能做什么

您可以使用许多 前景背景样式

  • 可用的 前景 颜色有:blackredgreenyellowbluepurplecyanwhite

  • 可用的 背景 颜色有:blackredgreenyellowbluemagentacyangray

  • 可用的 样式 有:faintbolditalicunderline,但此效果在某些终端中可能以不同的方式出现。

Ansi 还可以解析包含特殊 XML 样式标签的字符串以进行格式化。

也有魔法获取器,许多方法都是可链式的。请查看 示例目录 或阅读下一节以了解如何使用 Ansi。

使用示例

红色中的 "Hello World!"

use Malenki\Ansi;

$a = new Ansi('Hello World!');
echo $a->fg('red');

您可以使用 v()value() 方法在构造函数调用后设置字符串,因此您可以将颜色和格式保留并应用于其他字符串

$a = new Ansi();
$a->fg('red');
echo $a->v('Hello World!'); //in red
echo $a->v('Hello World again!'); //in red too

红色和黄色背景的 "Hello World!"

use Malenki\Ansi;
echo (new Ansi('Hello World!'))->fg('red')->bg('yellow');

红色、黄色背景和加粗的 "Hello World!"

use Malenki\Ansi;
echo (new Ansi('Hello World!'))->fg('red')->bg('yellow')->bold();

您也可以使用渲染后的字符串

use Malenki\Ansi;
$str = (new Ansi('Hello World!'))->fg('red')->bg('yellow')->bold()->render();

所有方法都是可链式的,除了 render()

一些魔法获取器允许新的语法,因此,所有 前景颜色 都可以通过调用它们的名称作为属性来获取,这同样适用于 faintbolditalicunderline。示例

echo (new Ansi('Hello World!'))->red->bold->underline;

对于 背景颜色,您必须像此示例中那样在名称前加上 bg

echo (new Ansi('Hello World!'))->red->bold->underline->bg_blue;

刚刚添加了更复杂的功能:解析具有与前景颜色和效果相同名称的标签的字符串。

所以一个理解示例

echo Ansi::parse('You can <bold>parse <cyan>string</cyan></bold> containing <red>some tags</red> to have <underline><yellow>some effects</yellow></underline> too!');

享受!

MIT 开源许可证

特此授予任何人免费获得本软件及其相关文档文件("软件")副本的权利,在不受限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向提供软件的人员这样做,前提是以下条件

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。

本软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论该责任是在合同行为、侵权行为或其他情况下产生的,与软件或软件的使用或其他使用方式有关。