Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: preg_replace_callback i highlight_string
Forum PHP.pl > Forum > PHP
Apo
Witam
Pisze sobie bbcode i natknąłem sie na problem przy kolorowaniu składni php.
robie to tak:
ciąg formatuje tak przy wyświetlaniu:
  1. <?php
  2. $newsy[$i]['short'] = bbcode( stripslashes($newsy[$i]['short']) );
  3. ?>


Funkcja bbcode:

  1. <?php
  2. // cut
  3. function bbcode( $str ) {
  4. $str = preg_replace_callback('#[php](.*?)[/php]#', 'phpcode', $str);
  5. return $str;
  6. }
  7. ?>

No i fuckcja phpcode odpowiedzalna za kolorowanie składni:

  1. <?php
  2. function bbcode_phpCode($str){
  3. $str[1]=highlight_string($str[1], TRUE);
  4. return $str;
  5. }
  6. ?>

No i problem polega na tym że niechce mi wogle pokolorować ciągu. Inne rzeczy mi chodzą pogrubienia, cytaty, linki itp. No i nie wiem gdzie tu popełniłem błąd.
Wielkie dzięki za pomoc.

edit///

Próbowałem też tak:
  1. <?php
  2. $str = preg_replace('#[php](.*?)[/php]#', '<b>Kod php</b>:<br /><center><div class="kod">'.highlight_string('${1}', true).'</div></center>', $str);
  3. ?>

Wszystko jest ok ale poza tym że nie koloruje kodu sad.gif
dtb
1. czy w tym pierwszym przykladzie nie powinno byc 'bbcode_phpCode' zamiast 'phpcode'?
2.
  1. <?php
  2. $str = preg_replace('#[php](.*?)[/php]#e', '"<b>Kod php</b>:<br /><center><div class="kod">".highlight_string("$1", true)."</div></center>"', $str);
  3. ?>

nie jestem pewny czy to dziala. pisane na szybko. zainteresuj sie funkcja eval" title="Zobacz w manualu php" target="_manual
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.