Projektowanie stron WWW od podszewki

Artykuły na każdy temat

[PHP] Kolorowanie składni

Dodano 12.08.2010r. o 11:01
Zapewne czasami widzicie na stronach pokolorowany kod PHP i zastanawiacie się jak to jest zrobione. Rozwiązanie jest bardzo proste i naturalnie można zobaczyć je poniżej Wink Chce przestrzedz wszystkich przed nierozważnym używaniem ów funkcji. Jeżeli zamierzacie pokazywać pokolorowany kod to upewnijcie się, że nie zagraża on bezpieczeństwu aplikacji. Chodzi oczywiście o pokazywanie źródeł ważnych plików stron. Takie rzeczy powinny być pod ścisłą kontrolą.

Kolorowanie kodu pochodzącego z pliku

Pierwszy kod wrzuca pokolorowany kod do zmiennej, a następnie ją echuje.
Kod:
<?php
$file_name 'nazwa_pliku.php';
$source highlight_file($file_nametrue);
echo $source;
?>
Jeżeli w funkcji highlight_file() nie będzie drugiego parametru lub będzie wynosił false wtedy pokolorowana składnia zostanie wyrzucona w miejscu wywołania funkcji.

Kolorowanie kodu pochodzącego ze stringu

Funkcja highlight_string() także posiada drugi parametr i ma takie samo zastosowanie jak w funkcji highlight_file(). Oznacza to, że jeżeli chcemy wyrzucać kod w miejscu wywołania funkcji to dajemy jako drugi parametr false albo nie dajemy go wcale w przeciwnym wypadku podajemy wartość true.
Kod:
<?php
$code '<?php echo \'test\'; ?>';
highlight_string($code);
?>
Naturalnie taki ciąg może pochodzić z pola z bazy danych. Możemy także ładować kod za pomocą np. file_get_contents(), a następnie wrzucać wynik do highlight_string().

Więcej informacji na:
http://php.net/manual/pl/function.highlight-file.php
http://php.net/manual/pl/function.highlight-string.php

Komentarze

Publikowane komentarze są prywatnymi opiniami użytkowników serwisu. Serwis nie ponosi odpowiedzialności za treść opinii. W trosce o zachowanie poziomu dyskusji wszystkie komentarze podlegają akceptacji przed ich publikacją dlatego proszę cierpliwie czekać aż komentarz zostanie opublikowany.

CapaciousCore

Dodano 08.09.2012r. o 02:04
@kSledzikowski do innych składni warto znaleźć jakąś klasę i ewentualnie ją poprawić.

kSledzikowski

Dodano 31.08.2012r. o 14:25
Używam i polecam. Jeszcze dopisałem tylko funkcję do tego, aby mi numerowało wierszę i śmiga świetnie. Very Happy
Trochę mnie wkurza, że nie koloruje innych składni, tylko PHP, ale oprócz tego jest świetne.

CapaciousCore

Dodano 30.08.2011r. o 22:36
@Pedro wrzuć na maila dane wejściowe to zobaczymy Razz

Pedro

Dodano 30.08.2011r. o 22:33
Korzystając z:
Kod:
<?php highlight_string($code); ?>
dla zmiennych kilku wierszowy, u mnie nie działa i wywala wiele błędów. A chciałem obrobić tym zwykły kod HTML.

CapaciousCore

Dodano 30.08.2011r. o 18:53
@Pedro a możesz dokładnie? Udostępnij jakiś przykład czy coś to Ci powiem co jest grane.

Pedro

Dodano 29.08.2011r. o 22:59
Ale kolorowanie stringów nie działa.
Sad

Dodaj komentarz

Zostaw komentarz jeżeli możesz! Nie bądź przysłowiowym botem! Nie bądź obojętny! Ciebie to nic nie kosztuje, a mi sprawi uśmiech na twarzy.
Zezwolono używać: BBCode
Zabroniono używać:
znaczników HTML

(Wymagany)

(Wymagany, niepublikowany)

(Nie wymagana)

Token:

Obrazek dla bota

(Przepisz tylko cyfry!)

(Wymagana)