jfcherng/php-color-output

Make your PHP command-line application colorful.

Maintainers

👁 jfcherng

Package info

github.com/jfcherng/php-color-output

pkg:composer/jfcherng/php-color-output

Fund package maintenance!

www.paypal.me/jfcherng/5usd

Statistics

Installs: 5 682 689

Dependents: 2

Suggesters: 0

Stars: 14

Open Issues: 0

3.0.0 2021-05-27 02:45 UTC

Requires

  • php: >=7.1.3

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 6c7bf16686cc6a291647fcb87491640a2d5edd20

  • Jack Cherng <jfcherng.woop@gmail.com>

colorcommand-lineansi-colorsstr-color

This package is auto-updated.

Last update: 2026-06-29 01:02:11 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;