$d){ if(!isset($d["text"])){ unset($newString["extra"][$k]); } } } return json_encode($newString, JSON_UNESCAPED_SLASHES); } /** * Returns an HTML-formatted string with colors/markup * * @param string|array $string * * @return string */ public static function toHTML($string){ if(!is_array($string)){ $string = self::tokenize($string); } $newString = ""; $tokens = 0; foreach($string as $token){ switch($token){ case TextFormat::BOLD: $newString .= ""; ++$tokens; break; case TextFormat::OBFUSCATED: //$newString .= ""; //++$tokens; break; case TextFormat::ITALIC: $newString .= ""; ++$tokens; break; case TextFormat::UNDERLINE: $newString .= ""; ++$tokens; break; case TextFormat::STRIKETHROUGH: $newString .= ""; ++$tokens; break; case TextFormat::RESET: $newString .= str_repeat("", $tokens); $tokens = 0; break; //Colors case TextFormat::BLACK: $newString .= ""; ++$tokens; break; case TextFormat::DARK_BLUE: $newString .= ""; ++$tokens; break; case TextFormat::DARK_GREEN: $newString .= ""; ++$tokens; break; case TextFormat::DARK_AQUA: $newString .= ""; ++$tokens; break; case TextFormat::DARK_RED: $newString .= ""; ++$tokens; break; case TextFormat::DARK_PURPLE: $newString .= ""; ++$tokens; break; case TextFormat::GOLD: $newString .= ""; ++$tokens; break; case TextFormat::GRAY: $newString .= ""; ++$tokens; break; case TextFormat::DARK_GRAY: $newString .= ""; ++$tokens; break; case TextFormat::BLUE: $newString .= ""; ++$tokens; break; case TextFormat::GREEN: $newString .= ""; ++$tokens; break; case TextFormat::AQUA: $newString .= ""; ++$tokens; break; case TextFormat::RED: $newString .= ""; ++$tokens; break; case TextFormat::LIGHT_PURPLE: $newString .= ""; ++$tokens; break; case TextFormat::YELLOW: $newString .= ""; ++$tokens; break; case TextFormat::WHITE: $newString .= ""; ++$tokens; break; default: $newString .= $token; break; } } $newString .= str_repeat("", $tokens); return $newString; } /** * Returns a string with colorized ANSI Escape codes * * @param $string * * @return string */ public static function toANSI($string){ if(!is_array($string)){ $string = self::tokenize($string); } $newString = ""; foreach($string as $token){ switch($token){ case TextFormat::BOLD: $newString .= "\x1b[1m"; break; case TextFormat::OBFUSCATED: $newString .= "\x1b[8m"; break; case TextFormat::ITALIC: $newString .= "\x1b[3m"; break; case TextFormat::UNDERLINE: $newString .= "\x1b[4m"; break; case TextFormat::STRIKETHROUGH: $newString .= "\x1b[9m"; break; case TextFormat::RESET: $newString .= "\x1b[0m"; break; //Colors case TextFormat::BLACK: $newString .= "\x1b[38;2;0;0;0m"; break; case TextFormat::DARK_BLUE: $newString .= "\x1b[38;2;0;0;170m"; break; case TextFormat::DARK_GREEN: $newString .= "\x1b[38;2;0;170;0m"; break; case TextFormat::DARK_AQUA: $newString .= "\x1b[38;2;0;170;170m"; break; case TextFormat::DARK_RED: $newString .= "\x1b[38;2;170;0;0m"; break; case TextFormat::DARK_PURPLE: $newString .= "\x1b[38;2;170;0;170m"; break; case TextFormat::GOLD: $newString .= "\x1b[38;2;255;170;0m"; break; case TextFormat::GRAY: $newString .= "\x1b[38;2;170;170;170m"; break; case TextFormat::DARK_GRAY: $newString .= "\x1b[38;2;85;85;85m"; break; case TextFormat::BLUE: $newString .= "\x1b[38;2;85;85;255m"; break; case TextFormat::GREEN: $newString .= "\x1b[38;2;85;255;85m"; break; case TextFormat::AQUA: $newString .= "\x1b[38;2;85;255;255m"; break; case TextFormat::RED: $newString .= "\x1b[38;2;255;85;85m"; break; case TextFormat::LIGHT_PURPLE: $newString .= "\x1b[38;2;255;85;255m"; break; case TextFormat::YELLOW: $newString .= "\x1b[38;2;255;255;85m"; break; case TextFormat::WHITE: $newString .= "\x1b[38;2;255;255;255m"; break; default: $newString .= $token; break; } } return $newString; } }