Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML] txtbb kolorowanie skladni
Forum PHP.pl > Forum > Przedszkole
luzak124
Witam pracuje nad własnym forum opartym txtbb nie pytać dla czego txtbb po prostu taki project,


W txtbb jest możliwość korzystania z BBCODE.
Dane jak ma wyglądać Tag w bbcode czyli jak zamienić
  1. Tekst na <b> Tekst </b>
są zapisane w pliku txt dokładnie chodzi mi o tą linie tekstu:
  1. a:8:{s:4:"type";s:7:"regular";s:7:"pattern";s:24:"#\[code\](.+?)\[/code\]#";s:6:"result";s:135:"<table cellspacing="0" width="100%" class="table-code"><tr><td class="table-padding"><pre style="margin:0px">$1</pre></td></tr></table>";s:10:"tag_prefix";N;s:10:"tag_suffix";N;s:13:"result_prefix";N;s:13:"result_suffix";N;s:2:"id";i:16;}

$1 w tym tekście oznacza tekst umieszczony do tagu BBCODE
ten kod służy do odpowiedniego wyświetlania kodu PHP za pomocą BBCODE ale brak tu kolorowania składni jak jest na przykład na tym forum.
Próbowałem tam wpisać kolorowanie składni tym skryptem:
  1. <? highlight_string('$1'); ?>

ale nie działa pomocy...

Oczywiście jak to moje pytanie jest bardzo zagmatwane jak czegoś nie rozumiecie proszę pytać
neverever
Cytat(luzak124 @ 1.08.2008, 17:20:23 ) *
dokładnie chodzi mi o tą linie tekstu:
  1. a:8:{s:4:"type";s:7:"regular";s:7:"pattern";s:24:"#\[code\](.+?)\[/code\]#";s:6:"result";s:135:"<table cellspacing="0" width="100%" class="table-code"><tr><td class="table-padding"><pre style="margin:0px">$1</pre></td></tr></table>";s:10:"tag_prefix";N;s:10:"tag_suffix";N;s:13:"result_prefix";N;s:13:"result_suffix";N;s:2:"id";i:16;}
To mi wygląda na zserializowany zapis. Zainteresuj się funkcją unserialize http://pl.php.net/manual/pl/function.unserialize.php
luzak124
no dobra poczytałem wiem już mniej więcej o co chodzi czyli że jak mam w tym kodzie
Kod
s:135:"<table cellspacing="0" width="100%" class="table-code"><tr><td class="table-padding"><pre style="margin:0px">$1</pre></td></tr></table>";
to na samym początku mam s:135 czyli 135 określa liczbę wszystkich znaków w "" jeżeli chce coś tam dopisać to muszę zwiększyć liczbę 135 o ilość dopisanych znaków ok.

teraz jak chce dopisać ten kod:
Kod
<? highlight_string('$1'); ?>

w ten sposób:
Kod
s:162:"<table cellspacing="0" width="100%" class="table-code"><tr><td class="table-padding"><pre style="margin:0px"><? highlight_string('$1'); ?></pre></td></tr></table>";

skrypt wyświetla kod w znaczniku BBCODE ale nie koloruje składni i na końcu dopisuje w bbcode '); ?>
czyli jednym słowem nie wiem jak tam to dopisać żeby pokolorowało składnie albo nie dokładnie zapoznałem się z funkcją unserialize

a i może to coś blokuje w funkcji bbcoda?
o to skrypt :
Kod
<?php
  //----------------------------------------------------
  // Obsluga BBCode
  //----------------------------------------------------

  function make_tags ($text) {
    global $database;
    global $_TAGS;
    
    // Mozemy postowac HTMLa jako tekst
    $text = str_replace('<', '&lt;', $text);
    $text = str_replace('>', '&gt;', $text);
      
    // HTML nie moze byc dostepny dla przegladarki
    $text = strip_tags($text);

    // Wstawianie BB code
    if (!$_TAGS) {
      $_TAGS = $database->select('*', 'tags');
    }
    foreach ($_TAGS as $tagRec) {
      if ($tagRec['type'] == 'regular') {
       $scount = substr_count($text, '[/');
        for ($i=0; $i < $scount; $i++) {
          $text = preg_replace($tagRec['pattern'].'i', $tagRec['result'], $text);
        }
      } else {
        // Zamykamy niezamniete tagi
        if (strlen($tagRec['tag_prefix']) > 1) {
          while (substr_count($text, $tagRec['tag_prefix']) < substr_count($result, $tagRec['tag_suffix'])){
            $text = $text . $tagRec['tag_suffix'];
          }
        }
        $text = str_replace($tagRec['tag_prefix'], $tagRec['result_prefix'], $text);
        $text = str_replace($tagRec['tag_suffix'], $tagRec['result_suffix'], $text);
      }      
    }

    // Wstawianie emotikon
    $emoticons = EmotsTable();
    foreach ($emoticons as $emotRec) {
      $text = str_replace($emotRec['text'], '<img border="0" src="'. $emotRec['image'] .'" alt="' . $emotRec['text'] . '" />', $text);
    }
    
    // Niewyswietlaj <br />
    $text = str_replace('&lt;br /&gt;', '<br />', $text);

    return $text;
  }
  
  function StripBBCode($s) {
    $s = str_replace("'", '', $s);
    $s = str_replace('"', '', $s);                          
    return preg_replace('#\[.+?\]#', '', $s);
  }

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