Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [klasa] Rainbow, kolorowanie kodu html,css, php
SHiP
post
Post #1





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

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


Przedsawiam kolejny wytwór mojej chorej główki (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Tym razem jest to klasa odpowiedzialna za kolorowanie kodu.

DOWNLAOD
Male info:
- klasa obsluguje 4 tryby; php, html, css, oraz all(wszystkie tryby naraz).
- jeśli zostanie wybrany np. tryb css a skrypt wykryje znaczniki php automatycznie zmieni tryb na all
- jezeli stala HTML_STRICT zadeklarowana w pliku libs/rainbow.class.php bedzie miala wartość 1 skrypt bedzie pracowal w trybie wymuszającym poprawny kod xhtml. Klasa podkreśli i pokoloruje na czerwono kod:
  • w przypadku niezamkniecia znacznika np. <br>
  • w przypadku braku cydzyslowów np cellspadding=0
  • w przypadku użycia wielkich liter np <DIV>
  • w przypadku użycia apostrofów np. <td rowspan='2'>
- klasa tworzy pamiec cache przez co gotowy kod generowany jest tylko raz

Tworzenie kodu jest bardzo proste
  1. <?php
  2. $rainbow = new rainbow(); // tworzenie obiektu
  3. $rainbow -> loadFile($file); // ladujemy kod z pliku 
  4. // lub
  5. $rainbow -> assignCode($code); // ladujemy kod ze zmiennej
  6.  
  7. // ustawiamy unikalny identyfikator(uzywany to tworzenia plikow cache)
  8. $rainbow -> setId('mieszane');
  9. echo $rainbow -> make('all'); // generujemy i wyswietlamy gotowy kod
  10. ?>

Funkcja make() posiada 2 parametry - pierwszy to tryb, drugi to tryb cache(domyslnie: 1 - wlaczony)

Aby usunąć cache wywolujemy
  1. <?php
  2. $rainbow -> deleteCache('mieszane'); // gdzie parametr to nasz unikalny identyfikator
  3. ?>


Zapraszam do komentowania, Jutro zaprezentuje drugą klase z bbCode pokaze jak wykozystywac rainbow w praktyce (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Mam problem z kodem php wyrwanym z kontekstu(tj, bez znacznikow <?php ?>. Czy jedynym sposobem bedzie dodanie ich, przeparsowanie a nastepnie usuniecie tych znaczników? Da sie wymusic parsowanie stringu na funkcji highlight_string" title="Zobacz w manualu php" target="_manual ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




@SHiP masz pewien drobny błąd w kolorowaniu sql. Założmy ze mamy takie zapytanie:
  1. CREATE TABLE `ShoutBox` (
  2. `ID` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `FK_USER` int(11) UNSIGNED DEFAULT NULL,
  4. `NICK` varchar(64) NOT NULL DEFAULT '',
  5. `MESSAGE` text NOT NULL,
  6. `TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  7. PRIMARY KEY (`ID`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=utf8

i spowodu tego default '' poniższe linijki:
  1. `MESSAGE` text NOT NULL,
  2. `TIME` timestamp NOT NULL DEFAULT
zostaną pokolorowane jako tekst.
Wystarczy tylko, by napisać: default ' ', czyli dać cokolowiek miedzy apostrofu i już bedzie git. No ale nie tędy droga. Pozwolilem sobie nanieść pewne poprawki. W funkcji hl_sql() w preg_replace zamiast '#("|\')(.+?)\\1#', dałem '#("|\')(.*?)\\1#', i już działa git.
Nie powinno to mieć zadnych ujemnych skutków na coś innego?
Go to the top of the page
+Quote Post

Posty w temacie


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: 17.10.2025 - 03:09