Skip to content

Instantly share code, notes, and snippets.

@bluefuton
Created October 11, 2010 14:12

Revisions

  1. bluefuton revised this gist Oct 21, 2010. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion cli_color.class.php
    Original file line number Diff line number Diff line change
    @@ -77,6 +77,6 @@ public function getBackgroundColors()
    // Are we running on the command line?
    public static function isCli()
    {
    return (php_sapi_name() == 'cli' && empty($_SERVER['REMOTE_ADDR']));
    return (php_sapi_name() == 'cli' && empty($_SERVER['REMOTE_ADDR']));
    }
    }
  2. bluefuton renamed this gist Oct 11, 2010. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  3. bluefuton created this gist Oct 11, 2010.
    82 changes: 82 additions & 0 deletions PHP: Command line colors
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,82 @@
    <?php
    // Based upon http://goo.gl/406o
    class CliColor
    {
    private $foreground_colors = array();
    private $background_colors = array();

    public function __construct()
    {
    // Set up shell colors
    $this->foreground_colors['black'] = '0;30';
    $this->foreground_colors['dark_gray'] = '1;30';
    $this->foreground_colors['blue'] = '0;34';
    $this->foreground_colors['light_blue'] = '1;34';
    $this->foreground_colors['green'] = '0;32';
    $this->foreground_colors['light_green'] = '1;32';
    $this->foreground_colors['cyan'] = '0;36';
    $this->foreground_colors['light_cyan'] = '1;36';
    $this->foreground_colors['red'] = '0;31';
    $this->foreground_colors['light_red'] = '1;31';
    $this->foreground_colors['purple'] = '0;35';
    $this->foreground_colors['light_purple'] = '1;35';
    $this->foreground_colors['brown'] = '0;33';
    $this->foreground_colors['yellow'] = '1;33';
    $this->foreground_colors['light_gray'] = '0;37';
    $this->foreground_colors['white'] = '1;37';

    $this->background_colors['black'] = '40';
    $this->background_colors['red'] = '41';
    $this->background_colors['green'] = '42';
    $this->background_colors['yellow'] = '43';
    $this->background_colors['blue'] = '44';
    $this->background_colors['magenta'] = '45';
    $this->background_colors['cyan'] = '46';
    $this->background_colors['light_gray'] = '47';
    }

    // Returns colored string
    public function getColoredString($string, $foreground_color = null, $background_color = null)
    {
    if (!self::isCli())
    {
    return $string;
    }

    $colored_string = "";

    // Check if given foreground color found
    if (isset($this->foreground_colors[$foreground_color]))
    {
    $colored_string .= "\033[" . $this->foreground_colors[$foreground_color] . "m";
    }
    // Check if given background color found
    if (isset($this->background_colors[$background_color]))
    {
    $colored_string .= "\033[" . $this->background_colors[$background_color] . "m";
    }

    // Add string and end coloring
    $colored_string .= $string . "\033[0m";

    return $colored_string;
    }

    // Returns all foreground color names
    public function getForegroundColors()
    {
    return array_keys($this->foreground_colors);
    }

    // Returns all background color names
    public function getBackgroundColors()
    {
    return array_keys($this->background_colors);
    }

    // Are we running on the command line?
    public static function isCli()
    {
    return (php_sapi_name() == 'cli' && empty($_SERVER['REMOTE_ADDR']));
    }
    }