март 30 2007

Подсветка php кода

Подсветка php кода

Небольшой хак, позволяющий установить подсветку PHP для тега [сode]

Открываем файл engine/inc/parse.class.php и находим в нём следующие строки:

function decodeBBCodes($txt, $use_html=TRUE, $wysiwig = "no") {

        global $config;

        $find = array (); $result = array ();
        $txt=stripslashes($txt);

после них вставляем:

########## Vbif update
$txt = preg_replace( "#<font color=\#(.+?)>#", '', $txt ); 
$txt = preg_replace( "#</font>#", '', $txt );
########## Vbif update

далее ниже находим строки:

        $txt = preg_replace( "#\s{1};#" , ";" , $txt );
        $txt = preg_replace( "#\t#"   , "    ", $txt );
        $txt = preg_replace( "#\s{2}#", "  "            , $txt );

и после них вставляем следующее:

########## Vbif update
// Открывающие и закрывающие тэги
$tegs = array("'<\?php'si", "'<\?'si", "'\?>'si");
$replace = array("<font color=#FF0000><?php</font>",
"<font color=#FF0000><?</font>",
"<font color=#FF0000>?></font>");
$txt = preg_replace($tegs, $replace, $txt);
// Подсветка комментариев                 
$txt = preg_replace("'(/\*.*?\*/)'si", "<font color=#777777>\\1</font>", $txt);
// Подсветка переменных                  
$txt = preg_replace("'([\$]{1,2}[0-9A-Za-z_]+)'si", "<font color=#660000>\\1</font>", $txt); 
// Подсветка знаков равенства                  
$txt = preg_replace("'(\s={1,3}\s)'", "<font color=#8000FF>\\1</font>", $txt);
// Подсветка зарезервированных слов
$str = array("'(\becho)'si",  "'(\bprint)'si",  "'(\bwhile)'si",  "'(\bif)'si",
"'(\bifelse)'si","'(\belse)'si",   "'(\bfor\b)'si",    "'(\bswitch\b)'si",
"'(\bcase)'si",  "'(\breturn\b)'si", "'(\barray)'si",  "'(\bfunction\b)'si",
"'(\bforeach)'si","'(\bclass\b)'si",  "'(\bglobal\b)'si", "'(\bvar\b)'si",
"'(\bisset)'si", "'(\bempty)'si",  "'(\bfalse\b)'si",  "'(\btrue\b)'si",
"'(\bas\b)'si",  "'(\bempty)'si",  "'(\bfalse\b)'si",  "'(\btrue\b)'si",
"'(\binclude)'si","'(\binclude_once)'si", "'(\brequire)'si", "'(\brequire_once)'si");
$replace = array_fill(0, count($str), "<font color=#0000FF>\\1</font>");
$txt = preg_replace($str, $replace, $txt);                           
########## Vbif update

Комментарии

  1. Bagir (Клиенты)

    30 марта 2007 18:21 8 комментариев
    smile прикольно, а в следущем релизе нельзя это всунуть?
  2. Barthez (Посетители)

    30 марта 2007 21:56 8 комментариев
    зы у меня непашет обясните почему а хак классный wink
  3. nguyennghiaua (Посетители)

    31 марта 2007 23:05 2 комментария
    tфi khфng thể gх tiếng Việt ở đвu lа thế nаo ? angry
  4. FraLL (Клиенты)

    2 апреля 2007 13:58 11 комментариев
    клёво! lol
  5. opaliha (Клиенты)

    2 апреля 2007 18:35 16 комментариев
    Эх, люди пытаются что-то писать на языке программирования, не удасужевшись прочитать официальную документацию к этому языку... Прискорбно... sad

    здесь расположен велосипед, который придуман в новости
  6. Legonavt (Посетители)

    2 апреля 2007 19:50 6 комментариев
    Бесполезный модуль.Поставьте себе UltraEdit это гораздо круче и лучше.
  7. Snow Land (Посетители)

    3 апреля 2007 21:10 2 комментария
    preg_replace(); работает ужасно медленно!
    А если его много - то вообще ужас.
  8. celsoft (Администраторы)

    3 апреля 2007 21:36 4 136 комментариев
    Цитата: Snow Land
    preg_replace(); работает ужасно медленно!

    это не критично, тем более что текст обрабатывается только один раз в момент ее добавления в базу данных
  9. kirbak (Посетители)

    4 апреля 2007 15:12 7 комментариев
    Использовать php бред. Гораздо лучше подойдёт для этого javascript, код будет подсвечиваться на стороне клиента.
  10. Pacifik (Клиенты)

    10 мая 2007 12:10 26 комментариев
    kirbak, Так реализуй и выложи, мы оценим, что тут языком молоть в пустоту.
    celsoft - спасибо, нормально работает!
  11. Mr 13 (Посетители)

    22 мая 2007 23:09 97 комментариев
    wink
  12. Barthez (Посетители)

    26 июля 2007 23:41 8 комментариев
    wink
  13. b333 (Посетители)

    19 марта 2009 09:50 2 комментария
    Афигеть, искал етот мод, а в 7.5 нету файла engine/inc/parse.class.php
  14. b333 (Посетители)

    12 мая 2009 16:41 2 комментария
    Открываем файл engine/inc/parse.class.php и находим в нём следующие строки

    В новых версия файлы классов хранятся в папке classes

Информация

Комментирование публикаций доступно только пользователям имеющим действующую лицензию на скрипт. Если вы уже приобретали скрипт, то вам необходимо зайти на сайт под своим клиентским аккаунтом.

Календарь

«    Ноябрь 2024    »
ПнВтСрЧтПтСбВс
 123
45678910
11121314151617
18192021222324
252627282930 

Опрос на сайте

Совершаете ли вы покупки в интернет?