Home >php教程 >php手册 >PHP Class Command Line Colors (bash,cmd)

PHP Class Command Line Colors (bash,cmd)

WBOY
WBOYOriginal
2016-06-13 10:45:39954browse

 


 

color.class.php

 
    class Colors {
        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) {
            $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);
        }
    }
 
?>

 

 

banner.php

include("color.class.php");

$colors = new Colors();

$a=$colors->getColoredString("   ##        ###       ", "light_red");

$x=$b=$colors->getColoredString("     c0d3b3:", "light_red","red");


$b=$colors->getColoredString("lost", "light_red","red");

$c=$colors->getColoredString("wolf      ", "light_red","red");
echo "\r\n";

echo  "                                                $x"."$b"."$c";

echo "\n\r\n\r\n\r\n\r\n";

echo  "                        ########                    #"."\n";
echo  "                    #################              #"."\n";
echo  "                  ######################          #"."\n";
echo  "                  #########################      #"."\n";
echo  "                ############################"."\n";
echo  "               ##############################"."\n";
echo  "               ###############################"."\n";
echo  "              ###############################"."\n";
echo  "              ##############################"."\n";
echo  "                              #    ########   #";
echo  "     \n               $a";echo"####   ##"."\n";
echo  "                                      ###   ###"."\n";
echo  "                                    ####   ###"."\n";
echo  "               ####          ##########   ####"."\n";
echo  "               #######################   ####"."\n";
echo  "                 ####################   ####"."\n";
echo  "                  ##################  ####"."\n";
echo  "                    ############      ##"."\n";
echo  "                       ########        ###"."\n";
echo  "                      #########        #####"."\n";
echo  "                    ############      ######"."\n";
echo  "                   ########      #########"."\n";
echo  "                     #####       ########"."\n";
echo  "                       ###       #########"."\n";
echo  "                      ######    ############"."\n";
echo  "                     #######################"."\n";
echo  "                     #   #   ###  #   #   ##"."\n";
echo  "                     ########################"."\n";
echo  "                      ##     ##   ##     ##"."\r\n\r\n";

?>

Colors class basic usage examples

 
    // Create new Colors class
    $colors = new Colors();
 
    // Test some basic printing with Colors class
    echo $colors->getColoredString("Testing Colors class, this is purple string on yellow background.", "purple", "yellow") . "\n";
    echo $colors->getColoredString("Testing Colors class, this is blue string on light gray background.", "blue", "light_gray") . "\n";
    echo $colors->getColoredString("Testing Colors class, this is red string on black background.", "red", "black") . "\n";
    echo $colors->getColoredString("Testing Colors class, this is cyan string on green background.", "cyan", "green") . "\n";
    echo $colors->getColoredString("Testing Colors class, this is cyan string on default background.", "cyan") . "\n";
    echo $colors->getColoredString("Testing Colors class, this is default string on cyan background.", null, "cyan") . "\n";
 
?>

All Foreground and background colors printed

 

 

   
        // Create new Colors class
        $colors = new Colors();
 
        // Get Foreground Colors
        $fgs = $colors->getForegroundColors();
        // Get Background Colors
        $bgs = $colors->getBackgroundColors();
 
        // Loop through all foreground and background colors
        $count = count($fgs);
        for ($i = 0; $i             echo $colors->getColoredString("Test Foreground colors", $fgs[$i]) . "\t";
            if (isset($bgs[$i])) {
                echo $colors->getColoredString("Test Background colors", null, $bgs[$i]);
            }
            echo "\n";
        }
        echo "\n";
 
        // Loop through all foreground and background colors
        foreach ($fgs as $fg) {
            foreach ($bgs as $bg) {
                echo $colors->getColoredString("Test Colors", $fg, $bg) . "\t";
            }
            echo "\n";
        }
 
?>

//////////////////////////////////////////////////////////

ANSI Command Line Colors under Windows

 

Having colored text in the command line is a great help for spotting error or success messages. Unfortunately, those of us developing under Windows do not have this feature by default. Here’s how to enable it:

  1. Download ANSICON from http://adoxa.110mb.com/ansicon/index.html
  2. Extract the proper files (Depending on if you have a 32 or 64 bit machine) to c:\ansicon\ (For example). I have a 32 bit machine and hence I extracted the files from inside the x86 folder.
  3. Open a command line prompt and go to c:\ansicon, and then type “ansicon -i” without the quotes
  4. Done

You can now enjoy the colored output of PHPUnit for example.

 

 

摘自 lostwolf's blog

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:php载入Next article:分析php源码的一些方法