[PHP] подсветка кода

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

[PHP] подсветка кода

Непрочитанное сообщение zg » 2008-09-13 20:36:15

Никто не баловался скриптами для подсвекти кода php/html? В PHP есть встроенные функции для подсветки, но они мягко говоря :"": убогие.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35426
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: [PHP] подсветка кода

Непрочитанное сообщение Alex Keda » 2008-09-13 22:00:06

зато прсер встроенный юзается =)))
быстро до безобразия....
======
я баловался - но я шелл скрипты подсвечивал...
тяжело всё это и муторно до безобразия....
Убей их всех! Бог потом рассортирует...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: [PHP] подсветка кода

Непрочитанное сообщение zg » 2008-09-14 7:12:06

у встроенного мне не нравится, что там подсветка идёт только php и то какая-то странная...

да просто вчера в очередной раз сел писать парсер.... и написал: подсветка php, html, css, js, phpDoc. Примерно так выглядит http://zlobnygrif.fatal.ru/test/example.php , вот и стало интересно как у других сделано. Порыскал в нете, ничего толком не нашёл.

Я и до этого реализовывал парсер, но на PHP4 и там была подсветка только PHP. Тот парсер был куда сложнее, этот настолько прост, что просто безобразие какое-то.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35426
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: [PHP] подсветка кода

Непрочитанное сообщение Alex Keda » 2008-09-14 10:51:55

Код: Выделить всё

Время работы: 0.899 сек.
 Памяти ушло: 525 КилоБайт
Объём текста: 2 247 байт(а)
некисло....
память как считаешь?
Убей их всех! Бог потом рассортирует...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: [PHP] подсветка кода

Непрочитанное сообщение zg » 2008-09-14 11:12:00

время работы скачет от сотых до полуторы секунд в зависимости от нагрузки на сервер, а память считаю memory_get_peak_usage() .

вчера на фатале http://forum.fatal.ru/viewtopic.php?f=8&p=57066#p57066 админ запустил мой скрипт где-то у себя, дак на обработку 180кб исходного текста ушло менее двух секунд...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: [PHP] подсветка кода

Непрочитанное сообщение zg » 2008-09-14 21:56:20

Ну вобщем как-то так получилось http://anton-pribora.ru/site/hl.php

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35426
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: [PHP] подсветка кода

Непрочитанное сообщение Alex Keda » 2008-09-15 7:45:57

Код: Выделить всё

Предупреждение: Элемент доступен по идентификатору/имени в глобальной области видимости. Используйте вместо этого соответствующий стандарту W3C метод document.getElemenById().
Источник: http://anton-pribora.ru/site/hl.php
Строка: 291
Убей их всех! Бог потом рассортирует...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: [PHP] подсветка кода

Непрочитанное сообщение zg » 2008-09-15 8:44:42

это наверное фф ругается... почему-то фряшный и виндовые фаерфоксы различаются...

проверь должно работать

ev
ст. лейтенант
Сообщения: 1325
Зарегистрирован: 2008-07-27 17:11:30
Откуда: Москва

Re: [PHP] подсветка кода

Непрочитанное сообщение ev » 2008-09-15 10:59:28

есть еще вариант подсвечивать через JS
таким образом сервер не нагружается (парсится на стороне клиента), да и использовать удобно

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: [PHP] подсветка кода

Непрочитанное сообщение zg » 2008-09-15 11:19:27

у гугля видел такое... но честно говоря не очень красиво.. Если можешь предложить вариант, показывай :smile: просто пхп мне роднее чем js, хотя сделать впринципе можно

ev
ст. лейтенант
Сообщения: 1325
Зарегистрирован: 2008-07-27 17:11:30
Откуда: Москва

Re: [PHP] подсветка кода

Непрочитанное сообщение ev » 2008-09-15 11:25:01

http://softwaremaniacs.org/soft/highlight/
расширяемый и описание на русском :)

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: [PHP] подсветка кода

Непрочитанное сообщение zg » 2008-09-15 12:10:59

Скрипт на этой странице привёл к перегрузке KHTML. Если он продолжит работать, другие приложения будут отзываться медленнее.
Прервать работу скрипта?
:smile:

посмотрел скрипт... у меня первая реализация была такой. На такой логике моего функционала не сделать... Хотя не спорю, проект интересный. А ещё есть подобные проекты?

UPD: поковырял скрипт, вот что у меня получилось через highlight.js
http://zlobnygrif.fatal.ru/test/hljs.html против http://zlobnygrif.fatal.ru/test/example.php

ev
ст. лейтенант
Сообщения: 1325
Зарегистрирован: 2008-07-27 17:11:30
Откуда: Москва

Re: [PHP] подсветка кода

Непрочитанное сообщение ev » 2008-09-15 20:23:51

так вроде внешний вид можно настраивать
так же как и добавлять новые языки

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: [PHP] подсветка кода

Непрочитанное сообщение zg » 2008-09-15 21:56:59

в том и проблема, что язык только один, если делать подсветку html, то ни css, ни js, ни php не будут подсвечены корректно, в примере это хорошо видно. Это самое узкое место в подобной реализации.

Аватара пользователя
krilya
мл. сержант
Сообщения: 106
Зарегистрирован: 2008-03-11 4:42:29
Откуда: Комсомольск-на-Амуре

Re: [PHP] подсветка кода

Непрочитанное сообщение krilya » 2008-09-16 4:22:35

highlight.js умеет подсвечивать "вложенные языки", о чем говорит сам автор
Вложенные языки. Я люблю повторять, что highlight.js -- это не тупой набор регулярок, а нормальный парсер. В развитие этой мысли я научил его теперь раскрашивать языки, которые находятся внутри другого языка. В частности сейчас реализована раскраска CSS и Javascript внутри HTML'ного кода.
ps. еще можно посмотреть GeSHi

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: [PHP] подсветка кода

Непрочитанное сообщение zg » 2008-09-16 9:12:04

krilya писал(а):highlight.js умеет подсвечивать "вложенные языки", о чем говорит сам автор
он это писал в марте, пол-года прошло, а её статус так и не перешёл в релизы.... :no:
krilya писал(а):ps. еще можно посмотреть GeSHi
оооо :good: классная хреновина, именно такое мне интересно, потестю отпишусь :-D

Аватара пользователя
krilya
мл. сержант
Сообщения: 106
Зарегистрирован: 2008-03-11 4:42:29
Откуда: Комсомольск-на-Амуре

Re: [PHP] подсветка кода

Непрочитанное сообщение krilya » 2008-09-16 9:29:47

zg писал(а):он это писал в марте, пол-года прошло, а её статус так и не перешёл в релизы....
у вас неактуальная информация highlight.js 4.0 (релиз)

p.s. обратите внимание на дату новости

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: [PHP] подсветка кода

Непрочитанное сообщение zg » 2008-09-16 10:09:30

krilya писал(а):у вас неактуальная информация highlight.js 4.0 (релиз)
да я его вообще первый раз вижу, скачал по первой ссылке, вставил пример в "экспортёр" и получил подсвеченный :"": код

в ридми написано следующее

Код: Выделить всё

## Contacts

Version: 4.2.1
URL:     http://softwaremaniacs.org/soft/highlight/en/
Author:  Ivan Sagalaev (Maniac@SoftwareManiacs.Org)
:unknown: хз где он там чего добавил... если найдёшь плз прогони через него http://zlobnygrif.fatal.ru/test/example.php и если есть возможность выложи результат :smile: может я и впрвду предвзято к нему отнёсся

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: [PHP] подсветка кода

Непрочитанное сообщение zg » 2008-09-16 14:49:53

гмм.. потестил геши, та ещё хреновина :smile: почему-то он упорно отказывается подсвечивать html css и php одновременно... :unknown: по быстродействию на реальном хостинге примерно сопоставимо, но на домашнем серваке разница почти 3 секунды при обработке 184кб текста (4.5 zg против 7.5 geshi). Ну и памяти геши кушает примерно в три раза больше, хотя тут на буферизацию примерно треть уходит.

http://anton-pribora.ru/parsers/geshi/zgHTML.php

Код: Выделить всё

Время работы: 2.220 сек.
Памяти ушло: 1 249 КилоБайт
Объём текста: 184 812 байт(а)
http://anton-pribora.ru/parsers/geshi/geshiPHP.php

Код: Выделить всё

Время работы: 2.100 сек.
Памяти ушло: 4 432 КилоБайт
Объём текста: 184 812 байт(а)
гуд, :-D ещё проекты есть?

Аватара пользователя
krilya
мл. сержант
Сообщения: 106
Зарегистрирован: 2008-03-11 4:42:29
Откуда: Комсомольск-на-Амуре

Re: [PHP] подсветка кода

Непрочитанное сообщение krilya » 2008-09-17 5:23:27

глянул форум про highlight.js, судя по всему для подобного случая нужны дополнительные манипуляции :)
попробуйте форум почитать, самому разбираться если чесно желания особого нет, других хайлайтеров не знаю
при подкючении highlight.js можно указывать определяемые языки для ускорения работы

Код: Выделить всё

hljs.initHighlightingOnLoad('html', 'css');
может и в GeSHi есть что-то подобное..

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: [PHP] подсветка кода

Непрочитанное сообщение zg » 2008-09-17 8:42:44

нее, ковырять не хочется... :smile: я тут в пеаре какую-то функцию нарыл, parse_php называется или как-то так :-D ща буду разбираться :smile: