Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Kolorowanie Składni
Spirit86
post
Post #1





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Witam.
Napisałem skrypt, w którym chciałbym pokolorować pytania do SQL. Zanalazłem klasęklasę, jednakże wydaje mi się ona zbyt rozbudowana (4 pliki). Przpomniałem sobie, że tu na forum też jest kolorowanie składni SQL (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Czy to sami napisaliście? Można pobrać gdzieś tę funkcję, no i oczywiście, czy można ją wykorzystać we własnych skryptach?

Zdecydowałem się na napisanie tego postu ze względu na to, że może któryś z użytkowników forum zna taką funkcję / sam ją napisał.

Napisałem coś takiego:
  1. <?php
  2. $words = array();
  3.  $words['clauseG'] = ' (CREATE|TABLE|SELECT|FROM|WHERE|ORDER BY|GROUP BY|LIMIT|INSERT INTO|VALUES|U
    PDATE|SET|create table|select|from|where|order by|group by|limit|insert into|valu
    es|update|set) '
    ;
  4.  $words['clauseL'] = ' (AND|INNER JOIN|OR|OUTER JOIN|LEFT JOIN|RIGHT JOIN|and|inner join|or|outer j
    oin|left join|right join) '
    ;
  5.  $words['clauseI'] = ' (AS|ON|DESC|DISTINCT|SQL_CALC_FOUND_ROWS|as|on|desc|distinct|sql_calc_found_
    rows) '
    ;
  6.  $words['function'] = ' (AVG|MAX|IF|CONCAT|DATE_FORMAT|SUBSTRING|avg|max|if|concat|date_format|subst
    ring) '
    ;
  7.  $words['operator'] = '([<>]{0}=|!=|<>|>[=]{0}|<[=]{0}|>=|<=|\+|-|\/)';
  8.  $words['numeric'] = '([0-9]+)';
  9.  $words['string'] = '('[^']*')';
  10.  $words['comma'] = '(,)';
  11.  $words['period'] = '(\.)';
  12.  $words['asterix'] = '(\*)';
  13.  $words['open'] = '(\()';
  14.  $words['close'] = '(\))';
  15.  $words['key'] = '(\`[^']*\`)';
  16.  
  17.  $Style = array(
  18. 'clauseG' => array('color: #993366; font-weight: bold;', true),
  19. 'clauseL' => array('color: #3366FF; font-weight: bold;', true),
  20. 'clauseI' => array('color: #00CCFF; font-weight: bold;', true),
  21. 'function' => array('color: #0000FF; font-weight: bold;', true),
  22. 'operator' => array('color: #3366FF; font-weight: bold;', false),
  23. 'numeric' => array('color: ; font-weight: bold;', false),
  24. 'comma' => array('color: #3366FF; font-weight: bold;', false),
  25. 'period' => array('color: #3366FF; font-weight: bold;', false),
  26. 'asterix' => array('color: #3366FF; font-weight: bold;', false),
  27. 'open' => array('color: #3366FF; font-weight: bold;', false),
  28. 'close' => array('color: #3366FF; font-weight: bold;', false),
  29. 'string' => array('color: #3366FF; font-weight: bold;', false),
  30. 'key' => array('color: #339966; font-weight: bold;', false)
  31.  );
  32.  $re_query = $query;
  33. foreach($words AS $key=>$expr)
  34. {
  35. $re_query = ($Style[$key][1]) ? preg_replace("\"$expr\"", "<span style=\"".$Style[$key][0]."\">\\1</span>", $query) : preg_replace("\"$expr\"", "<span style=\"".$Style[$key][0]."\">\\1</span>", $query);
  36. }
  37. ?>

No, ale coś nie działa najlepiej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Pozdrawiam

Ten post edytował Spirit86 16.03.2006, 13:17:19
Go to the top of the page
+Quote Post
Strzałek
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 384
Pomógł: 6
Dołączył: 11.09.2004
Skąd: Grodzisk Mazowiecki

Ostrzeżenie: (0%)
-----


zainteresuj się GeSHi
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 23:32