Зы:
Koenig'у респект и уважуха)
AlkatraZ, может я как то криво понимаю, по. я думал с буфероо, только иероглифы выходили, можно рабочий пример в пятерку?
FlySelf, сессия для каждого разная, то есть код по крайнему нажатию достается из сессии , удаление забыл, честно не понял что ты имел ввиду
FlySelf, догнал про сессию, переопределение, ну как бы я сильно не обдумывал алгоритм, можно кучно домыслить
Koenig, спасибо, вот это нужная вещь
AlkatraZ (17.08.2012/18:20)
Насчет нумерации строк, категорически не согласен.
Вроде бы удобный наворот, но он жутко мешает, когда хочешь скопировать - вставить код со страницы в редактор, номера строк то копируются вместе с ко
Ну в WordPress, Drupal, Joomla как-то делают подсветку кода со строками, но номера строк же не копируются
Может тогда глянуть реализацию там?… зачем велосипед то изобретать?)
Koenig (17.08.2012/22:34)
AlkatraZ, может я как то криво понимаю, по. я думал с буфероо, только иероглифы выходили, можно рабочий пример в пятерку?
Ну в пятерке поидее и есть рабочий пример.
---
Логика работы такова:
Если у тебя кроме Хидеров данной функции отдается что-то еще (любое echo() или хотя бы левый пробел после закрывающего РНР тэга), ничего не получится.
Посему, в функции в первую очередь перехватывается и очищается буфер вывода ob_end_clean();
Как мы знаем, буфер обмена у нас стартует в core.php если он не используется, то
ничего не получится
Далее, мы стартуем новый буфер ob_start();
Потом выводим с помощью echo() нужное нам содержимое файла.
Но хитрость в том, что мы отдаем это браузеру не в виде HTML страницы, а в виде файла, для чего служат следующие заголовки... header(...
Чтоб принудительно отдать, используем flush();
Хотя это не обязательно, но лишняя страховка, на случай если вдруг что-то не так.
zumak, вообще наверное можно конечно оттуда выдрать подсветку? Если нужно, могу упаковать плагин (на скриншоте выше подсветка с моего сайта на wordpress), там в плагине можно подсветку настраивать разных стилей, цветов, с строками и без строк. Но что интересно номера строк не копируются.
zumak (18.08.2012/15:48)
Может тогда глянуть реализацию там?… зачем велосипед то изобретать?)
Дык кто же изобретает велосипед?
Функцию подсветки кода изначально (если мне не изменяет память) писал димон (FlySelf), дык он там все сделал правильно, применил встроенную в РНР функцию
highlight_string()
Куда уж еще проще и каноничнее (не велосипеднее)?
Кто бы не писал, в идеале (если стремитесь к простоте и к неизобретению велосипедов) придете к этому же, неважно кто писал. главное чтоб было просто и понятно.
Или же можно использовать
Geshi специальный подсветчик кода, но он по размерам сопоставим со всем нашим двигом, оно Вам надо? гг