Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Generowanie pokolorowanej skladni php, jak?
Daimos
post 4.08.2005, 00:58:34
Post #1





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


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>


Ten post edytował buffalo soldier 4.08.2005, 00:58:54


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
Vengeance
post 4.08.2005, 01:16:55
Post #2





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

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


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.


--------------------
Go to the top of the page
+Quote Post
dasko
post 4.08.2005, 07:41:03
Post #3





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 9.11.2004

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


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.
Go to the top of the page
+Quote Post
Daimos
post 5.08.2005, 22:23:54
Post #4





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


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

Ten post edytował buffalo soldier 5.08.2005, 22:32:49


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
Vengeance
post 5.08.2005, 22:38:15
Post #5





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

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


htmlspecialchars() ?!

google.pl / manual php.net ?!


--------------------
Go to the top of the page
+Quote Post
Daimos
post 5.08.2005, 22:40:44
Post #6





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


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


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
R4v3N
post 6.08.2005, 10:59:45
Post #7





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 7.05.2004
Skąd: Pultusk

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


To moze zamieniaj tylko te ktore chcesz questionmark.gif snitch.gif

I znow manual tongue.gif
Go to the top of the page
+Quote Post
pawel_k
post 21.08.2005, 01:32:02
Post #8





Grupa: Zarejestrowani
Postów: 211
Pomógł: 3
Dołączył: 29.07.2005
Skąd: Szczebrzeszyn

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


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

Ten post edytował pawel_k 21.08.2005, 01:36:10
Go to the top of the page
+Quote Post
tiraeth
post 21.08.2005, 10:02:47
Post #9





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


najlepiej to sobie sam pokoloruj skłądnię (wyr. regularne) i będziesz miał tak jak chcesz...
Go to the top of the page
+Quote Post
NuLL
post 21.08.2005, 10:29:36
Post #10





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


http://forum.php.pl/index.php?showtopic=34...iew=getlastpost


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
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 Wersja Lo-Fi Aktualny czas: 13.07.2025 - 19:32