<MyRusakov.ru />

Разработчик игр на Unreal Engine

Разработчик игр на Unreal Engine

Этот комплект с нуля всего за 7 месяцев сделает Вас Unreal-разработчиком. И при этом учиться достаточно 1 час в день.

Начнёте Вы с основ программирования, постепенно перейдя к C++. Затем очень подробно изучите Unreal Engine, и после научитесь программировать на C++ в Unreal Engine. В конце создадите крупный проект на C++ в Unreal Engine для своего портфолио.

Комплект содержит:

- 416 видеоуроков

- 95 часов видео

- 1024 задания для закрепления материала из уроков

- 3 финальных тестирования

- 4 сертификата

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Подсветка синтаксиса в консоли на PHP

Подсветка синтаксиса в консоли на PHP

Создание PHP скрипта, который форматирует код для вывода в консоль, может быть полезным для целей отладки и логирования. Ниже приведен простой PHP скрипт, который форматирует код с подсветкой синтаксиса для вывода в консоль. Этот скрипт использует ANSI-коды для добавления цветов к различным частям кода.

CodeFormatter.php

<?php

class CodeFormatter
{
    // ANSI-коды для цветов
    private const RESET = "\033[0m";
    private const RED = "\033[31m";
    private const GREEN = "\033[32m";
    private const YELLOW = "\033[33m";
    private const BLUE = "\033[34m";
    private const MAGENTA = "\033[35m";
    private const CYAN = "\033[36m";
    private const WHITE = "\033[37m";

    // Ключевые слова для подсветки
    private const KEYWORDS = [
        'abstract', 'and', 'array', 'as', 'break', 'callable', 'case', 'catch', 'class', 'clone', 'const', 'continue',
        'declare', 'default', 'do', 'else', 'elseif', 'enddeclare', 'endfor', 'endforeach', 'endif', 'endswitch',
        'endwhile', 'extends', 'final', 'finally', 'for', 'foreach', 'function', 'global', 'goto', 'if', 'implements',
        'include', 'include_once', 'instanceof', 'insteadof', 'interface', 'namespace', 'new', 'or', 'private',
        'protected', 'public', 'require', 'require_once', 'return', 'static', 'switch', 'throw', 'trait', 'try',
        'use', 'var', 'while', 'xor', 'yield'
    ];

    /**
     * Форматирование и вывод кода с подсветкой синтаксиса
     *
     * @param string $code
     */
    public static function formatCode(string $code): void
    {
        $lines = explode(PHP_EOL, $code);
        foreach ($lines as $line) {
            self::printFormattedLine($line);
        }
    }

    /**
     * Вывод одной строки с подсветкой синтаксиса
     *
     * @param string $line
     */
    private static function printFormattedLine(string $line): void
    {
        $tokens = token_get_all('<?php ' . $line);
        array_shift($tokens); // Удаление токена открывающего тега PHP

        foreach ($tokens as $token) {
            if (is_array($token)) {
                [$id, $text] = $token;
                switch ($id) {
                    case T_COMMENT:
                    case T_DOC_COMMENT:
                        echo self::GREEN . $text . self::RESET;
                        break;
                    case T_STRING:
                        if (in_array(strtolower($text), self::KEYWORDS, true)) {
                            echo self::BLUE . $text . self::RESET;
                        } else {
                            echo self::YELLOW . $text . self::RESET;
                        }
                        break;
                    case T_VARIABLE:
                        echo self::CYAN . $text . self::RESET;
                        break;
                    default:
                        echo $text;
                }
            } else {
                echo $token;
            }
        }
        echo PHP_EOL;
    }
}

Пример использования

Вы можете использовать класс CodeFormatter для форматирования и вывода PHP кода с подсветкой синтаксиса. Вот пример:

<?php

require 'CodeFormatter.php';

$code = <<<'PHP'
<?php
function greet($name) {
    echo "Hello, $name!";
}

// Вызов функции
greet("World");
PHP;

CodeFormatter::formatCode($code);

Объяснение

  • Класс CodeFormatter определяет константы для ANSI-кодов различных цветов.
  • Он определяет список ключевых слов PHP для подсветки.
  • Метод formatCode принимает строку PHP кода, разбивает её на строки и выводит каждую строку с подсветкой синтаксиса.
  • Метод printFormattedLine использует функцию token_get_all для токенизации кода и применения цветов на основе типа токена.

Этот скрипт предоставляет базовую подсветку синтаксиса для PHP кода в консоли. Вы можете расширить его для поддержки большего количества типов токенов и языков по мере необходимости.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.