Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> preg_replace i funkcja jako replacement
szymonnn
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 9.09.2007

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


Witam,
korzystam z biblioteki geshi do podświetlania kodu, która jest napisana w php. Chodzi o to, że w formularzu pisze bbcode typu [kod]plik.cpp[/kod], gdzie plik.cpp jest argumentem dla funkcji WyswietlKod (plik zawiera kod jakiegoś języka programowania), po czym ta funkcja po przeparsowaniu pliku zwraca podświetlony kod html. Jeśli zastosuje poniższy kod, to nie rozpoznane zostaje \\1 w wyrażeniach regularnych i zamiast szukać np. pliku plik.cpp, to funkcja chce otworzyć plik \1. Jak zrobić to, że tekst zawarty między blokami [kod]...[/kod] będzie argumentem dla funkcji WyswietlKod, która zwraca podświetlony kod html?

$tekst = preg_replace("#\[kod\](.*?)\[/kod\]#si", $this->WyswietlKod("\\1"), $_POST['tresc']);

Z góry dziękuję i pozdrawiam~
Go to the top of the page
+Quote Post
webdevil
post
Post #2





Grupa: Zarejestrowani
Postów: 82
Pomógł: 18
Dołączył: 2.02.2009

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


Sprawdź parametr e w wyrażeniu regularnym - szerzej o tym masz w manualu - przykład:
  1. <?php
  2. preg_replace("/(</?)(w+)([^>]*>)/e",
  3.             "'1'.strtoupper('2').'3'",
  4.             $html_body);
  5. ?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 12:27