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 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 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 ?


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
1010
post
Post #2





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


Może wstaw gdzieś na serwer przykład jak to działa...


--------------------
Go to the top of the page
+Quote Post
SHiP
post
Post #3





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

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


Wybaczcie zapomnialem o wersji online winksmiley.jpg http://srodek.info/examples/rainbow/
uruchamiamy kolejne pliki run

EDIT:
A wrzuce wam gotowe linki winksmiley.jpg
http://srodek.info/examples/rainbow/run_all.php
http://srodek.info/examples/rainbow/run_css.php
http://srodek.info/examples/rainbow/run_html.php
http://srodek.info/examples/rainbow/run_php.php

Ten post edytował SHiP 12.10.2006, 14:50:41


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
1010
post
Post #4





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


Nom koloruje bardzo ładnie... W kod nie patrzałem więc nie ocenie na ile on jest optymalny...


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #5





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




Troszkę odświerzam smile.gif
Brakuje mi tu jeszcze kolorowania [quote] i najlepiej by wylapywal zagniezdzenia. Da sie dorobic? smile.gif

Ogolnie klaska wydaje się sensowna, jestem w fazie testowania.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
SHiP
post
Post #6





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

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


Do cytatów i ogolnie do obslugi BBcode napisałem oddzielna funkcję która filtruje parametry, pilnuje zagnieżdżania itp.
Demo: http://www.srodek.fc.pl/examples/handycode/run_live.php
Biblioteka nazywa sie handyCode, powinien byc gdzieś temat na forum. Ponadto biblioteki zawsze dostepne pod http://srodek.info/download smile.gif


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
nospor
post
Post #7





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




No faktycznie, dzięki smile.gif

ps: ale dla quote to przydalaby sie jeszcze taka konstrukcja: [quote=KtoNapisal]


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
SHiP
post
Post #8





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

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


Huh, rzeczywiscie dziwne ze o tym nie pomyslalem winksmiley.jpg. Nie mam narazie czasu zajmować sie tą biblioteką ;] Rozszerzenie nie powinno stanowić problemu - mini manual http://www.srodek.fc.pl/examples/handycode/manual.html


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
sniezny_wilk
post
Post #9





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


A co jeśli wpiszę:
Kod
[b][[/b]
Tu jest błąd, klasa powinna klorować znak "[", ale tego nie robi winksmiley.jpg

PS: Jeśli oddziele spacją to zadziała.


--------------------
Go to the top of the page
+Quote Post
SHiP
post
Post #10





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

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


Niby powinno działac ale wg. mojej smile.gif specyfikacji BBcoda jest to bledny zapis to tak jakby w htmlu uzyc < zamiast &lt;

Poprawna forma
Kod
[b]\[[/b]


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
sniezny_wilk
post
Post #11





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


Hehe, a wpisz na tym forum ten przykład co podałem.. zadziała smile.gif na innych forach też, może warto, żęby u Ciebie też działało?


--------------------
Go to the top of the page
+Quote Post
Balon
post
Post #12





Grupa: Zarejestrowani
Postów: 422
Pomógł: 0
Dołączył: 14.12.2005
Skąd: Wałbrzych

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


Kod
/\[b\][^\[]\[/b\]/

hm to chyba tak by leciało ? tongue.gif


--------------------
Postura wielka i morda wredna, jestem Balon, kozak z osiedla !
bzdury.pl - Królestwo rozrywki
Go to the top of the page
+Quote Post
SHiP
post
Post #13





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

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


Balon -> obawiam się ze to jest bardziej skomplikowane smile.gif. Bez wczesniejszego filtrowania zmiennej z tekstem chyba sie nie obędzie.

345 linijka
  1. <?php
  2. $code = preg_replace_callback('# [('.$this -> AllowedTags.')(s=?.+?|=.+?)?] ( (?: (?(R) [^[]++ | [^[]*+) | (?R)) *) [/1] #x',Array($this, 'parseTag'), $code);
  3. ?>


Jesli wiecie jak to zoptymalizować winksmiley.jpg aby pomijalo zbedne nawiasy to byłoby fajnie winksmiley.jpg.


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
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?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
SHiP
post
Post #15





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

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


Dzięki, rzeczywiście nie przewidziałem tego... Trzeba będzie Cie do readme dopisac w następnej wersji ^^. Oczywiście to wyrażenie nic nie zmieni - powiązane sa ze sobą jedynie jezyki html, css, js i php. SQL wystepuje jako singiel smile.gif.

Ten post edytował SHiP 21.06.2007, 07:53:44


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 20:11