jfcherng/php-color-output

Make your PHP command-line application colorful.

3.0.0 2021-05-27 02:45 UTC

This package is auto-updated.

Last update: 2024-04-30 00:28:20 UTC


README

GitHub Workflow Status (branch) Packagist Packagist Version Project license GitHub stars Donate to this project using Paypal

demo.gif

The above screenshot is the output of demo.php. See the Example section.

Installation

composer require jfcherng/php-color-output

Available Styles

Background Foreground Compound Special Alias
b_black f_black f_dark_gray blink b (bold)
b_blue f_blue f_light_blue bold blk (blink)
b_cyan f_brown f_light_cyan dim h (hidden)
b_green f_cyan f_light_green hidden rev (reverse)
b_light_gray f_green f_light_purple reset rst (reset)
b_magenta f_light_gray f_light_red reverse u (underline)
b_red f_normal f_white underline -
b_yellow f_purple f_yellow - -
- f_red - - -

Functions and Methods

<?php

/**
 * Make a string colorful.
 *
 * @param string          $str       the string
 * @param string|string[] $colors    the colors
 * @param bool            $reset     reset color at the end of the string?
 *
 * @return string the colored string
 */
\Jfcherng\Utility\CliColor::color(string $str, $colors = [], bool $reset = true): string

/**
 * Remove all colors from a string.
 *
 * @param string $str the string
 *
 * @return string the string without colors
 */
\Jfcherng\Utility\CliColor::noColor(string $str): string

Example

<?php

include __DIR__ . '/vendor/autoload.php';

use \Jfcherng\Utility\CliColor;

// colors in a string using a comma as the delimiter
echo CliColor::color('foo', 'f_light_cyan, b_yellow');  // "\033[1;36;43mfoo\033[0m"

echo PHP_EOL;

// colors in an array
echo CliColor::color('foo', ['f_white', 'b_magenta']); // "\033[1;37;45mfoo\033[0m"

echo PHP_EOL;

// do not auto reset color at the end of string
echo CliColor::color('foo', ['f_red', 'b_green', 'b', 'blk'], false); // "\033[31;42;1;5mfoo"

// manually add color reset
echo CliColor::color('', 'reset'); // "\033[0m"

echo PHP_EOL;

// remove all color codes from a string
echo CliColor::noColor("\033[31;42;5mfoo\033[0mbar"); // "foobar"

echo PHP_EOL;