Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Generowanie pokolorowanej skladni php
Forum PHP.pl > Forum > Przedszkole
Daimos
Chce zrobic cos takiego ze gdy wpisze kod php, to generowalo by mi to kod HTML z pokolorowana skladnia, tylko niewiem jak sie za to zabrac

moge odczytac plik php z kolorowana skladnia za pomoca show_source

przykladowo, chce zamiast ( w rezultacie show_source ):
  1. <?
  2. echo date(&#092;"Y-m-d H:i:s\");
  3. ?>

otrzymac:
  1. <code><font color="#000000">
  2. <font color="#0000CC">&lt;?
  3. <br /></font><font color="#006600">echo </font><font color="#0000CC">date</font><font color="#006600">(</font><font color="#CC0000">"Y-m-d H:i:s"</font><font color="#006600">);
  4. <br /></font><font color="#0000CC">?&gt;</font>
  5. </font>
  6. </code>
Vengeance
Przejdźmy mały kurs korzystania z manuala php... jest tam wszystko tylko nie wiem czemu wiele osob ma problemy w wykorzystaniu jego zalet...

Tak więc napisałeś o funkcji show_source, jednak nie spełnia ona twoich wymagań. Zapewne chodzi oto że wyświetla dane, a nie zwraca ich do jakieś tam zmiennej. Zacznijmy więc od wejścia na http://pl.php.net/show_source

Dużo tam nie ma... tylko napis "show_source -- Alias of highlight_file()"
Ale klikamy w odnosnik i już jesteśmy na www.php.net/highlight_file.

Z manuala dowiedzieliśmy się już że highlight_file i show_source to aliasy czyli robią dokładnie to samo. Ale na dole opisu funkcji mamy mały napis "See also highlight_string().". Znów klikamy na odnośnik pod nazwą funkcji i... czytamy...

Cytat
mixed highlight_string ( string str [, bool return] )

The highlight_string() function outputs a syntax highlighted version of str using the colors defined in the built-in syntax highlighter for php.


Tak więc chyba znaleźliśmy to oco nam chodzi.

Aby zaś zapisać wynik do jakieś zmiennej, wystarczy wykorzystać bufforowanie, czyli funkcje ob_start(), ob_get_clean(), ob_end(). Z manuala już umiesz korzystać więc dowiesz się co i jak sam.
dasko
A korzystając jeszcze lepiej z tegoż manuala, widzimy, że istnieje drugi, opcjonalny argument funkcji highlight_string" title="Zobacz w manualu PHP" target="_manual, który ustawiony na true pozwala uniknąć buforowania wyjścia - funkcja po prostu zwraca ciąg.
Daimos
no wiec zrobilem tak:
  1. <?php
  2. for($i=0; $i<$ile; $i++){
  3. $kodphp[$i] = highlight_string($kodphp[$i], true);
  4.  
  5.  
  6.  
  7. }
  8. ?>

w petli bo mam wiele kodow
zrobilem zeby mi wyswietlalo mi to w polu textarea, bo chce to skopiowac i utworzyc dokument html z tego ( sam, niechce automatycznie winksmiley.jpg
ale problem jest taki...
bo ladnie mi wszystko zawiera pokolorowane, ale otrzymalem na przyklad:
  1. <code><font color="#000000">
  2. <font color="#0000CC"><? <br />$wiadomosc </font><font color="#006600">= </font><font color="#CC0000">"
  3. <br /><html>


no i jak to skopiuje i wkleje do dokumentu html to nie wyswietla mi znacznikow html, ( w tym przypadku <html> zostaje pominiete przy wyswietlani) dzieje sie tak bo powinno zamienic znaki < >, ale tego nie robi :/

powinno mi wyswietlic w textarea tak:
  1. <code><font color="#000000">
  2. <font color="#0000CC">&lt;?
  3. <br />$wiadomosc </font><font color="#006600">= </font><font color="#CC0000">"
  4. <br />&lt;html&gt;


pomocy sad.gif
Vengeance
htmlspecialchars() ?!

google.pl / manual php.net ?!
Daimos
jak pisalem:
otrzymuje takie cos:
  1. <code><font color="#000000">
  2. <font color="#0000CC"><? <br />$wiadomosc </font><font color="#006600">= </font><font color="#CC0000">"
  3. <br /><html>

zamiast:
  1. <code><font color="#000000">
  2. <font color="#0000CC">&lt;?
  3. <br />$wiadomosc </font><font color="#006600">= </font><font color="#CC0000">"
  4. <br />&lt;html&gt;


jezeli zamienie wszystkie znaczniki htmla to mi sie podmieni tez to <font color itd....
R4v3N
To moze zamieniaj tylko te ktore chcesz questionmark.gif snitch.gif

I znow manual tongue.gif
pawel_k
a mozecie napisac gdzie moge zmienic cos aby na localhoscie mi funkcja highlight_string dzialala?? kod mam dobry, na serwerz sprawdzalem ale na localhoscie generuje mi czarny tekst...
i czy jest jakas funkcja ktora generuje kolorowa skladnie nie robiac tego w ten sposob:
  1. <code><font color="#000000">
  2. <font color="#0000CC">session_start</font><font color="#006600">();
  3. <br />echo </font><font color="#0000CC">session_id</font><font color="#006600">();</font>
  4. </font>
  5. </code>

tylko zamieniajac fonty na span z odpowiednimi stylami, czy musz sam uzyc wyrazen regolarnych??
tiraeth
najlepiej to sobie sam pokoloruj skłądnię (wyr. regularne) i będziesz miał tak jak chcesz...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.