Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]preg_replace
Forum PHP.pl > Forum > Przedszkole
kamillo121
Witam, mam problem bo nie wiem jak wykorzystać dane z wzorca, mam taki testowy wzorzec
'/\[color=([0-9]{1})\](.*?)\[\/color\]/';
i teraz chce go zamienić na
"<span style=\"color: $this->_getColor($1)\">$2</span>";

tylko, że ten zamiennik nie działa bo podstawia mi wartość "(liczba)" zamiast to co zwraca funkcja, jak mam ją wywołać ?
Próbowałem wywołać ją tak:

"<span style=\"color: {$this->_getColor($1)} \">$2</span>";

tylko wtedy problem bo szuka zmiennej $1 a nie tej z preg_replace, prosze jak ktoś wie to niech mi napiszę jak to zrobić w jednym zapisie bo już na różne sposoby próbowałem.

//albo chociaż pod miejsce na zamiennik podstawiłbym wywołanie metody tylko jak jako argument metody podać "$1" odwołujące się do tego wzorca ?
preg_replace udostępnia jakąś tablicę z danymi co do wzorca ?
markonix
Nie wiem czy dobrze zrozumiałem ale ogólnie spróbuj do prega wstawić argument $pattern.
Pod zmienną $pattern przypisz wartość:
  1. $pattern = '/wyrażenie regularne '. $color .' druga część wyrażenia regularnego/'


Ps.
Zamiast ujmować kod w cudzysłowy w temacie to skorzystaj z dedykowanych znaczników (code,php,html).
kamillo121
Nie, nie o to chodziło smile.gif wartość ma pochodzić ze znalezionego wzorca ale rozwiązałem ten problem.
Zamiast preg_replace pobawię się preg_replace_callback i dużo lepiej wyjdzie, przynajmniej łatwy dostęp do wartości ze znalezionego wzorca smile.gif

a kod ująłem w " bo trochę mi się spieszyło więc skopiowałem część kodu z notepada.
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-2024 Invision Power Services, Inc.