PHP-функция, которая выполняет синтаксический анализ цвета синтаксиса для нескольких языков?
-
08-07-2019 - |
Вопрос
Я делаю PHP-сайт, который отображает примеры кода на различных языках (C #, PHP, Perl, Ruby и т.д.).Существуют ли какие-либо функции PHP, которые добавляют синтаксическую окраску для этих и других языков?
Если нет, я хотел бы, по крайней мере, найти ту встроенную PHP-функцию, которая выполняет раскраску синтаксиса для PHP-кода, но я больше не могу ее найти.Спасибо.
Решение
Почему бы не использовать синтаксическую окраску на стороне клиента?
Используйте prettify.js , его действительно универсальный код Google и Используйте StackOverflow!
Проверьте тестовую страницу на предмет поддерживаемых языки.
Другие советы
На самом деле вам, вероятно, было бы лучше отформатировать его в javascript.Существует несколько зрелых цветов синтаксиса javascript.
Для подсветки PHP используйте highlight_string () . (Это может хорошо работать и с другими языками.)
Edit: . Для этой функции необходимо, чтобы строка начиналась с открывающего тега PHP. Что я сделал на своем сайте, чтобы обойти это, я передал что-то вроде "<?php\n$code\n?>"
в функцию highlight_string (), а затем использовал регулярное выражение, чтобы убрать начальные и конечные теги, которые я добавил. Этот метод очень хорошо работал для выделения C / C ++, Scheme и Java (и PHP без тегов <?php ?>
.)
Как уже упоминалось, Google prettify.js действительно хорош, но если вы хотите сделать это на сервере в PHP, вы можете попробовать посмотреть на Текстовый грушевый текст