Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> GeSHi --> Kolorowanie kodu
TheBlackJJoker
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 21.01.2014

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


Witam.
Proszę was o pomoc.
A mianowicie.
Jak używać tej pseudo Biblioteki (Klasy).
Coś już zrobiłem, ale nie mogę użyć takich znaczników:
<?php, lub ?>

I ogólnie nie wiem jak sformatować wygląd. Najlepiej w css (IMG:style_emoticons/default/smile.gif)

Kod
<?php

include('geshi.php'); //include do skryptu :P
$language = 'php'; // język kodu
ob_start(); // tworzymy zmienną przechowującą kod do pokolorowania
?>
//Tutaj kod, który ma być pokolorowany
<?php
$source = ob_get_contents();// Cały powyższy kod znajduje się w zmiennej $source
ob_end_clean();//zamykamy zmienną przechowującą kod i czyścimy
$geshi = new GeSHi($source, $language);// Tworzymy nowy obiekt klasy
$geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS); // Numerowanie wierszy
//$geshi->set_overall_id('php'); // id = "php" (do css)
//$geshi->get_stylesheet(); // Pobiera styl z stylu css zewnętrznego
echo $geshi->parse_code();// Wyświetlamy
?>


Ten css to tylko background (IMG:style_emoticons/default/sad.gif)

Pomocy!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Złe podejście.
  1. include_once 'geshi.php';
  2.  
  3. // funkcja z ustawieniami
  4. function zmien($match) {
  5. // replace problematic characters
  6. $search = array("\\", "&quot;", "'", "\", "&quot;", "'", "&lt;", "&gt;", "&amp;");
  7. $replace = array("\\\\", "\"", "'", "\\", "\"", "\'", "<", ">", "&");
  8. $match = str_replace($search, $replace, $match);
  9.  
  10. $mode = '';
  11. $geshi = new GeSHi($match[3], $match[1]);
  12.  
  13. // wyłączenie aktywnych linków
  14. $geshi->enable_keyword_links(false);
  15.  
  16. // style do PRE (ale lepiej zastosować osobny plik styli
  17. $geshi->set_header_content_style('position: absolute; margin-top: -12px; float: right; background: #0026FF; border: 1px solid rgb(208, 208, 208); padding: 2px 4px; color: #fff; font-weight: bold;');
  18.  
  19. // jaki język kolorowany
  20. $geshi->set_header_content('<LANGUAGE>');
  21.  
  22. // styl kontentu
  23. $geshi->set_footer_content($content);
  24.  
  25. // stopka
  26. $geshi->set_footer_content('<TIME> Wygenerowano w: <SPEED> Wersja GeShi: <VERSION>');
  27.  
  28. // wiele języków w jednym (np. mieszany kod HTML i PHP
  29. $geshi->enable_strict_mode(GESHI_ALWAYS, true);
  30.  
  31. // numerowanie linii
  32. $geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 2);
  33.  
  34. // kodowanie
  35. $geshi->set_encoding('UTF-8');
  36.  
  37. // błędy
  38. $geshi->error();
  39.  
  40. // parsowanie
  41. return $geshi->parse_code();
  42. }
  43.  
  44. // i podmieniasz to, co masz w treści w znacznikach PRE
  45. $source = preg_replace_callback("/<pre(?:lang=[\"']([\w-]*)[\"']|line=[\"'](\d*)[\"']|\s)+>(.*)<\/pre>\s*/siU", 'zmien', $source);
Go to the top of the page
+Quote Post

Posty w temacie


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: 10.10.2025 - 13:59