// Подсветка синтаксиса PHP | PHP: function php_bbcode($text) { $text = preg_replace_callback('#\[php\](.*?)\[/php\]#si', create_function('$matches', ' $matches[1] = htmlspecialchars_decode($matches[1]); $matches[1] = (stripos($matches[1], "<?php") === false)? "<?php \r\n".$matches[1] : $matches[1]; $matches[1] = highlight_string($matches[1], 1); $br_num = substr_count($matches[1], "<br />"); $numeric[] = "<table cellpadding=\"0px\" cellspacing=\"0px\" border=\"0\"><tr><td style=\"font-size:13px; border-right:#999999 dashed 1px; padding-right:5px; font-family:\'Courier New\', Courier, monospace; text-align:right; vertical-align:top;\">"; for($i=1; $i<=$br_num + 1; $i++) { $numeric[] = $i."<br />"; } $numeric[] = "</td><td style=\"font-size:13px; padding-left:3px; vertical-align:top; white-space:nowrap;\">".$matches[1]; $numeric[] = "</td></tr></table>"; $matches[1] = implode("", $numeric); $result = "<div style=\"border:#999999 dashed 1px; margin: 5px 20px 5px 20px; padding:5px;\"><a href=\"http://www.php.net\" target=\"_blank\" style=\"color:#333333; font-weight:bold;\">PHP</a><br /><br />".$matches[1]."</div>"; return $result;'), $text); return $text; } ------------------------------ Отключил BB коды в сообщении
PHP: <?php require_once './geshi/geshi.php'; $geshi = new GeSHi($code, 'php'); $geshi->set_header_type(GESHI_HEADER_NONE); $geshi->set_tab_width(4); $geshi->enable_keyword_links(false); print $geshi->parse_code(); Я по старинке 8)
Вот тут можно проверить работу этого дела http://hight.fatal.ru/phphighlighting.php Просто вставляйте PHP-код в текстарию.
во-первЫх: хорошо б вывести стили в css, что б человеку было удобно изменить цветовую мурню. во=втОрых - хорошо б сделать ссылки на мануалы по ф-циям. то есть пишу: print_r($someVar); прербразовывает в <a href="php.net/print_r">print_r</a>($someVar);
чорд. Ну в css вывести - легко. А вот со ссылками посложней. Нужно составнять некое множество ф-ций, например ('var_dump', 'implode', 'sprintf'). Это нужно для того, чтобы в ссылки не преврыщались всякие myFunk, которых ессно в man php нет. Наверно будет тормозить. Может попробую.
Если кто-нибудь составит список функций, то сделать не проблема. Список функций можно на php.net намыть На 486 будет
Я пытался сделать грамотную подсветку, но так и не получилось. Хотел сделать вариацию PHP + HTML + CSS + SQL + JAVASCRIPT (чтобы поставить тег [webcode] и подсвечивалась эта смесь).
Так можно сделать. Но в любом случае надо, чтобы в коде были какие-то флаги, ограничивающие тот или иной язык.
Добрый дядя хайт составил http://hight.fatal.ru/phpfunclist.rar phpfunclist.php - Исходный список функций с php.net parser.php - чем я парсил собственно список result.php - файл с массивом функций вида: 'имя функции' => 'ссылка на php.net'
Никто так за выделение PHP-функций не взялся Придётся самому. Если вдохновение придёт сегодня сделаю.
чесс слово, нет времени совсем. У меня сейчас универ и 3 работы Если мне хотя б кто-нить помог с настройкой mercurial+trac =)